题解

91 条题解

  • 1
    @ 2015-02-05 15:41:47

    这种题太贱了。这是人性的堕落、道德的沦丧。出这道题的人犯了反人类罪。
    #include<iostream>
    #include<string.h>
    #include<math.h>
    #include<stdio.h>
    using namespace std;
    char a[13];
    bool go(){
    int i, j,p,q;
    for (i = 0; a[i]; i++){
    for (j = i + 1; a[j]; j++){
    for (p = j + 1; a[p]; p++){
    for (q = p + 1; a[q]; q++){
    if (a[i] == a[j] && a[p] == a[q] || a[i] == a[q] && a[p] == a[j])
    return false;
    }
    }
    }
    }
    return true;
    }
    int main(){
    //freopen("in.txt", "r", stdin);
    int size;
    cin >> size;
    gets(a);
    while (size--){
    gets(a);
    if (go())cout << "safe" << endl;
    else cout << "de1ete" << endl;
    }
    return 0;
    }

  • 0
    @ 2016-10-23 10:25:35

    这题有两个坑,一个de“1”ete,还有度字符串的时候一定要用gets,因为字符串里面有空格!
    #include<iostream>
    #include<string>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    string sCheck(char sA[]);
    int main()
    {
    int nT;
    char sA[15];
    while (cin >> nT)
    {
    while (nT--)
    {
    gets(sA);
    cout << sCheck(sA) << endl;
    }
    }
    return 0;
    }
    string sCheck(string sA)
    {
    int i, j, k, l, nLen = sA.size();
    if (nLen < 4)
    return "safe";
    for (i = 0; i < nLen; i++)
    {
    for (j = i + 1; j < nLen; j++)
    {
    for (k = j + 1; k < nLen; k++)
    {
    for (l = k + 1; l < nLen; l++)
    {
    if ((sA[i] == sA[j]) && (sA[l] == sA[k]))
    return "de1ete";
    if ((sA[j] == sA[k]) && (sA[i] == sA[l]))
    return "de1ete";
    }
    }
    }
    }
    return "safe";
    }

  • 0
    @ 2015-08-13 17:13:13

    席八!!
    还有这样的!!
    !!!de<1>ete!!!
    纳尼!!!

  • 0
    @ 2014-11-03 22:55:39

    猥琐!
    P1482信息筛选
    Accepted

    记录信息

    评测状态 Accepted
    题目 P1482 信息筛选
    递交时间 2014-11-03 22:55:14
    代码语言 C++
    评测机 上海红茶馆
    消耗时间 33 ms
    消耗内存 564 KiB
    评测时间 2014-11-03 22:55:15

    评测结果

    编译成功

    测试数据 #0: Accepted, time = 0 ms, mem = 556 KiB, score = 10

    测试数据 #1: Accepted, time = 0 ms, mem = 564 KiB, score = 10

    测试数据 #2: Accepted, time = 0 ms, mem = 560 KiB, score = 10

    测试数据 #3: Accepted, time = 0 ms, mem = 560 KiB, score = 10

    测试数据 #4: Accepted, time = 0 ms, mem = 560 KiB, score = 10

    测试数据 #5: Accepted, time = 0 ms, mem = 556 KiB, score = 10

    测试数据 #6: Accepted, time = 0 ms, mem = 560 KiB, score = 10

    测试数据 #7: Accepted, time = 15 ms, mem = 552 KiB, score = 10

    测试数据 #8: Accepted, time = 7 ms, mem = 564 KiB, score = 10

    测试数据 #9: Accepted, time = 11 ms, mem = 560 KiB, score = 10

    Accepted, time = 33 ms, mem = 564 KiB, score = 100

    代码

    #include <iostream>
    #include <cmath>
    #include <stdio.h>
    #include <algorithm>
    #include <string.h>

    using namespace std;

    int n;
    char a[10 + 2];
    int i , j , k , l , m;
    bool flag;

    int main()
    {
    while( scanf( "%d" , &n ) != EOF )
    {
    getchar();
    while( n-- )
    {
    flag = 0;
    memset( a , 0 , sizeof( a ) );
    gets( a );
    for( m = 0 ; a[m] != 0 ; m++ )
    ;
    if( m < 3 )
    {
    printf( "safe\n" );
    continue;
    }
    for( i = 0 ; i < m ; i++ )
    for( j = i + 1 ; j < m ; j++ )
    for( k = j + 1 ; k < m ; k++ )
    for( l = k + 1 ; l < m ; l++ )
    if( ( a[i] == a[j] && a[k] == a[l] ) || ( a[i] == a[l] && a[k] == a[j] ) )
    {
    printf( "de1ete\n" );
    flag = 1;
    i = j = k = l = m;
    break;
    }
    if( !flag )
    printf( "safe\n" );
    }
    }

    return 0;
    }

    疝气!

  • 0
    @ 2014-03-27 10:28:45

    var
    str:string;
    n,i:longint;
    function try(s:string; x,y,z:longint):boolean;
    var
    ch:char;
    flag:boolean;
    i,j,q:longint;
    begin
    for i:=x to y do
    begin
    ch:=s[i];
    flag:=false;
    for j:=y downto i+1 do
    if s[j]=ch then
    begin
    q:=j;
    flag:=true;
    break;
    end;
    if (flag) then
    begin
    if (z=1) then
    if (try(s,i+1,q-1,2))or(try(s,q+1,length(s),2))or(try(s,1,i-1,2)) then
    exit(false);
    if z=2 then
    exit(true);
    end;
    end;
    if z=2 then exit(false) else
    exit(true);
    end;

    begin
    readln(n);
    for i:=1 to n do
    begin
    readln(str);
    if length(str)<4 then
    writeln('safe') else
    if try(str,1,length(str),1) then
    writeln('safe') else
    writeln('de1ete');
    end;
    end.
    太艰辛了

  • 0
    @ 2009-11-03 09:01:28

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    注意:有空格!不能用scanf("%s",&s);要用gets(s);并且空格也算AABB和ABBA

  • 0
    @ 2009-11-02 13:42:02

    program p1482;

    var n,strl,i:longint;

    str:string;

    procedure check(m:longint);

    var i,j,k,l:longint;

    begin

    for i:=1 to strl-3 do

    for j:=i+1 to strl-2 do

    for k:=j+1 to strl-1 do

    for l:=k+1 to strl do

    if ((str[i]=str[j]) and (str[k]=str[l])) or ((str[i]=str[l]) and (str[j]=str[k]))

    then begin writeln('de1ete'); exit; end;

    writeln('safe');

    end;

    begin

    readln(n);

    for i:=1 to n do

    begin

    readln(str);

    strl:=length(str);

    check(i);

    end;

    end.

    这个边读边输出,可以啊?

    为什么先保存在输出最后一个点会超时?

  • 0
    @ 2009-10-31 22:11:26

    de"1"ete

    服了

  • 0
    @ 2009-09-25 09:50:45

    水题不扫,何以水天下....

  • 0
    @ 2009-08-26 14:32:10

    直接枚举剩余串 也就C(10,4)=210种。

    还有那个de“1”ete 是我见过最无语的一题。。。

  • 0
    @ 2009-08-10 21:16:58

    WA=90...

  • 0
    @ 2009-08-06 21:26:46

    My God!!!!

    de“1”ete

    晕。。。。。。

  • 0
    @ 2009-08-03 20:22:48

    每行数据中有空格,c语言注意用gets

  • 0
    @ 2009-07-30 21:28:06

    为什么要加randomize??

    • @ 2013-10-31 14:35:51

      var
      n,i:longint;
      s:ansistring;
      procedure psc;
      var
      l:longint;
      a,b,c,d:longint;
      begin
      l:=length(s);
      for a:=1 to l-3 do
      for b:=a+1 to l-2 do
      for c:=b+1 to l-1 do
      for d:=c+1 to l do
      if ((s=s)and(s=s))or((s=s)and(s=s)) then
      begin writeln('de1ete'); exit; end;
      writeln('safe');
      end;
      begin
      readln(n);
      for i:=1 to n do
      begin
      readln(s);
      psc;
      end;
      end.
      那你把字符串读入提出来 就不需要randomize。。。

  • 0
    @ 2009-07-23 10:52:17

    记得加randomize......太水了......

  • 0
    @ 2009-07-09 19:54:56

    在我没提交前,AC的人数就是我的学号...傲..我AC了以后就更顺了。..567..以前那个也很顺..566...

  • 0
    @ 2009-05-29 14:50:37

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    辛苦啊⊙﹏⊙b

  • 0
    @ 2009-05-28 13:27:24

    饿滴神呀!!!

    竟然是de1ete

  • 0
    @ 2009-05-08 21:48:48

    奇怪!为何在

    读取总数的语句



    分别读取人名并处理的语句

    之间加一个randomize就能通过

    否则就一分也不得呢?

    var

    n,i:longint;

    procedure go();

    var

    st:string;

    l:longint;

    a,b,c,d:longint;

    begin

    readln(st);

    l:=length(st);

    for a:=1 to l-3 do

    for b:=a+1 to l-2 do

    for c:=b+1 to l-1 do

    for d:=c+1 to l do

    if ((st[a]=st) and (st[c]=st[d])) or

    ((st[a]=st[d]) and (st=st[c])) then

    begin writeln('de1ete'); exit; end;

    writeln('safe');

    end;

    begin

    readln(n);

    randomize;

    for i:=1 to n do go;

    end.

    AC!

  • 0
    @ 2009-04-18 20:28:07

    70 / 155 (45%)

    第70题。自己庆祝下

信息

ID
1482
难度
6
分类
字符串 | 模拟 点击显示
标签
递交数
1248
已通过
315
通过率
25%
被复制
2
上传者