题解

98 条题解

  • 0
    @ 2009-08-19 15:12:42

    第900人!

    判断语句一定不能写错啊!!!!!!!!

    判断语句一定不能写错啊!!!!!!!!

    判断语句一定不能写错啊!!!!!!!!

  • 0
    @ 2009-08-17 11:22:36

    佩服下自己的毅力,交了6还不放弃!!!

    1~3 150的数组开成15+判断语句错误

    4 要开2个数组,一个前秒状态,一个现在状态

    5 少复制了个end.

    6 AC

  • 0
    @ 2009-08-14 11:11:54

    program p1415;

    var map:array[-1..102,-1..102] of integer;

    s:string;

    n,m,t,x,y,side,tt:integer;

    begin

    readln(m,n,t);

    for x:=1 to n do

    begin

    readln(s);

    for y:=1 to m do

    begin

    if s[y]='1' then

    map[x,y]:=1;

    if s[y]='0' then

    map[x,y]:=0;

    end;

    end;

    for tt:=2 to t do

    begin

    for x:=1 to n do

    for y:=1 to m do

    begin

    side:=0;

    if map[x,y]=1 then

    begin

    if (map[x+1,y]=1) or (map[x+1,y]=2) then

    side:=side+1;

    if (map[x,y+1]=1) or (map[x,y+1]=2) then

    side:=side+1;

    if (map[x+1,y+1]=1) or (map[x+1,y+1]=2) then

    side:=side+1;

    if (map[x-1,y]=1) or (map[x-1,y]=2) then

    side:=side+1;

    if (map[x,y-1]=1) or (map[x,y-1]=2) then

    side:=side+1;

    if (map[x-1,y-1]=1) or (map[x-1,y-1]=2) then

    side:=side+1;

    if (map[x+1,y-1]=1) or (map[x+1,y-1]=2) then

    side:=side+1;

    if (map[x-1,y+1]=1) or (map[x-1,y+1]=2) then

    side:=side+1;

    if side3 then

    map[x,y]:=2;

    end;

    if map[x,y]=0 then

    begin

    if (map[x+1,y]=1) or (map[x+1,y]=2) then

    side:=side+1;

    if (map[x,y+1]=1) or (map[x,y+1]=2) then

    side:=side+1;

    if (map[x+1,y+1]=1) or (map[x+1,y+1]=2) then

    side:=side+1;

    if (map[x-1,y]=1) or (map[x-1,y]=2) then

    side:=side+1;

    if (map[x,y-1]=1) or (map[x,y-1]=2) then

    side:=side+1;

    if (map[x-1,y-1]=1) or (map[x-1,y-1]=2) then

    side:=side+1;

    if (map[x+1,y-1]=1) or (map[x+1,y-1]=2) then

    side:=side+1;

    if (map[x-1,y+1]=1) or (map[x-1,y+1]=2) then

    side:=side+1;

    if side=3 then

    map[x,y]:=3;

    end;

    end;

    for x:=1 to n do

    for y:=1 to m do

    begin

    if map[x,y]=2 then

    map[x,y]:=0;

    if map[x,y]=3 then

    map[x,y]:=1;

    end;

    end;

    for x:=1 to n do

    begin

    for y:=1 to m do

    write(map[x,y]);

    writeln;

    end;

    end.

    一个数组也有一个数组的解法,照样AC

  • 0
    @ 2009-08-06 20:02:37

    program li;

    var n,m,l,i,j,t,sum:longint;

    a,b:array[0..1000,0..1000]of char;

    procedure check(x,y:longint);

    var i,j:longint;

    begin

    sum:=0;

    if a[x-1,y-1]='1' then inc(sum);

    if a[x-1,y]='1' then inc(sum);

    if a[x,y-1]='1' then inc(sum);

    if a[x+1,y-1]='1' then inc(sum);

    if a[x-1,y+1]='1' then inc(sum);

    if a[x+1,y]='1' then inc(sum);

    if a[x,y+1]='1' then inc(sum);

    if a[x+1,y+1]='1' then inc(sum);

    end;

    begin

    readln(m,n,t);

    for i:=1 to n do

    begin

    for j:=1 to m do read(a);

    readln;

    end;

    for l:=2 to t do

    begin

    for i:=1 to n do

    for j:=1 to m do

    begin

    check(i,j);

    case a of

    '1' :begin

    if (sum3) then b:='0' else b:='1';

    end;

    '0':begin

    if sum=3 then b:='1' else b:='0';

    end;

    end;

    end;

    a:=b;

    end;

    for i:=1 to n do

    begin

    for j:=1 to m do

    write(a);

    writeln;

    end;

    end.

    没事做玩一下CASE语句也不错..........

    楼下说的很正确

  • 0
    @ 2009-07-28 22:40:12

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    记录编号 Flag 得分 记录信息 环境 评测机 程序提交时间

    R1362857 Accepted 100 From YY_0227-

     P1415 FPC Vivid Puppy 2009-7-28 22:35:43

    R1362795 Unaccepted 60 From YY_0227-

     P1415 FPC Vivid Puppy 2009-7-28 22:14:25

    R1362760 Unaccepted 20 From YY_0227-

     P1415 FPC Vivid Puppy 2009-7-28 22:00:03

    R1362730 Unaccepted 20 From YY_0227-

     P1415 FPC Vivid Puppy 2009-7-28 21:53:14

    R1362724 Unaccepted 20 From YY_0227-

     P1415 FPC Vijos Dragon 2009-7-28 21:51:28

    R1362695 Unaccepted 20 From YY_0227-

     P1415 FPC Vivid Puppy 2009-7-28 21:40:44

    R1362686 Unaccepted 20 From YY_0227-

     P1415 FPC Vivid Puppy 2009-7-28 21:39:44

    R1362649 Unaccepted 20 From YY_0227-

     P1415 FPC Vivid Puppy 2009-7-28 21:30:18

    R1362542 Unaccepted 20 From YY_0227-

     P1415 FPC Vivid Puppy 2009-7-28 21:04:46

    R1362538 Unaccepted 50 From YY_0227-

    AC率啊你死的好惨啊

    一开始我也狂错,后来数组开0..200就过了

  • 0
    @ 2009-07-27 20:20:30

    m,n害死人啊........

  • 0
    @ 2009-07-27 18:56:06

    交了5次,2次是因为**m,n反了**,2次是因为**数组开小了**

    (不能1..100,1..100,而是0..101,0..101),

    他不提示溢出,而显示答案错误,晕

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    var m,n,t,a,b,c:integer;

    map,tmp:array[0..101,0..101] of boolean;

    s:string;

    function envir(x,y:integer):integer;

    begin

    envir:=0;

    if map[x+1,y+1] then inc(envir);

    if map[x+1,y] then inc(envir);

    if map[x-1,y] then inc(envir);

    if map[x,y+1] then inc(envir);

    if map[x,y-1] then inc(envir);

    if map[x-1,y-1] then inc(envir);

    if map[x-1,y+1] then inc(envir);

    if map[x+1,y-1] then inc(envir);

    end;

    begin

    fillchar(map,sizeof(map),false);

    readln(m,n,t);

    for a:=1 to n do

    begin

    readln(s);

    for b:=1 to m do

    if s[ b ]='1' then map[a,b]:=true;

    end;

    for a:=2 to t do

    begin

    fillchar(tmp,sizeof(tmp),false);

    for b:=1 to n do

    for c:=1 to m do

    if map then

    if (envir(b,c)3) then tmp:=false

    else tmp:=true

    else

    if envir(b,c)=3 then tmp:=true

    else tmp:=false;

    map:=tmp;

    end;

    for a:=1 to n do

    begin

    for b:=1 to m do

    if map[a,b] then write('1')

    else write('0');

    writeln;

    end;

    end.

  • 0
    @ 2009-07-15 23:38:42

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    我很细心,一次AC

    #include

    using namespace std;

    int m,n,t;

    int a[65][150][150]={0};

    char step[10];

    char s[102];

    int life(int k,int x,int y)

    {

    int total,p,q;

    total=0;

    for(p=-1;p

  • 0
    @ 2009-07-11 23:10:10

    题题题题题题题题题题题题题题题题题题题题题题题题题题题题题题题题题题题

    题题题题题题题题水水水题题题题题题题题题题题题题题水水题题题题题题题题

    题题题题题水水水水水水题题题题题题题题题题题题水水水水题题题题题题题题

    题题水水水水水水题水水题题题题题题题题题题水水水水题题题题题题题题题题

    题题水水水题题题题水水题题题题题题题题水水水水题题题题题题题题题题题题

    题题水水题题题题题水水题题题题题水水水水水题题题题题水题题题题题题题题

    题题水水题题题题题水水题题题题水水水水题题题题题题水水题题题题题题题题

    题题水水题题题题水水水题题题题题题题题题水题题题水水题题题题题题题题题

    题题水水题水水水水水水题题题题题水题题题水水题题水水题题题题题题题题题

    题题水水水水水水题题题题题题题题水水题题水水题题水水题题题题题题题题题

    题题水水水题水水题题题题题题题题题水水题题水题题水题题题题题题题题题题

    题题题题题题水水题题题题题题题题题题水水题水水题题题题题题题题题题题题

    题题题题题题水水题题题题题题题题题题题题题水水题题题题题题题题题题题题

    题题题题题题水水题题题题题题题题题题题题题水水题题题水水水水水题题题题

    题题题题题题水水题题题题题题题题题题题题题水水水水水水水水题题题题题题

    题题题题题题水水题题水水题题题题题题水水水水水水水水题题题题题题题题题

    题题题题水题水水水水水水题题水水水水水水水水水水水题题题题题题题题题题

    题题题水水题水水水水题题题题水水水水题水水水水水水水题题题题题题题题题

    题题题水水题水水题题题题题题题题题题水水水水水题水水水题题题题题题题题

    题题题水水题水水题题题题题题题题题题水水题水水题题水水水题题题题题题题

    题题题水水题水水题题题题题题题题题水水水题水水题题题水水水题题题题题题

    题题题水水题水水题题题题题题题题题水水题题水水题题题题水水水题题题题题

    题题题水水题水水题题题题题题题题水水水题题水水题题题题题水水水题题题题

    题题题水水题水水题题题题题题题题水水题题题水水题题题题题题水水水水题题

    题题题水水题水水题题题题水题题水水水题题题水水题题题题题题题水水水水题

    题题题水水题水水水水水水题题题水水题题题题水水题题题题题题题题题题题题

    题题题水水水水水水水水题题题水水水题题题题水水题题题题题题题题题题题题

    题题水水水水水水题题题题题水水水题题题题题水水题题题题题题题题题题题题

    题题水水水题题题题题题题水水水题题题题题题水水题题题题题题题题题题题题

    题题题题题题题题题题题题题题题题题题题题题水水题题题题题题题题题题题题

    题题题题题题题题题题题题题题题题题题题题题题题题题题题题题题题题题题题

    这体有病啊,浪费了我大量的时间和AC:

    1、样例就没用,要自己模拟;

    2、第一次算1s;

    3、m,n又是反的,害的我2次50分!!!!!!!!!!!!!!!!!

    严重鄙视出题者,繁重鄙视Conan!!!!!!!!!!!!!!!!!

  • 0
    @ 2009-06-04 21:38:15

    program cell;

    const

    maxn=100;maxm=100;

    distance:array[1..8,1..2]of -1..1=((-1,-1),(-1,0),(-1,1),(0,-1),

    (0,1),(1,-1),(1,0),(1,-1));

    var

    m,n,t,i,j,k,c:integer;

    cells:array[0..maxn+1,0..maxm+1]of char;

    Function countlive(x,y:integer):integer;

    var i,tmp:integer;

    begin

    tmp:=0;

    for i:=1 to 8 do

    if cells[x+distance,y+distance]='1' then inc(tmp);

    countlive:=tmp;

    end;

    begin

    read(m);read(n);readln(t);

    for i:=1 to n do begin

    for j:=1 to m do

    read(cells);

    readln;

    end;

    for i:=1 to t-1 do

    for j:=1 to n do

    for k:=1 to m do begin

    c:=countlive(j,k);

    if cells[j,k]='1' then

    if (c3) then cells[j,k]:='0'

    else

    else if c=3 then cells[j,k]:='1';

    end;

    writeln;

    for i:=1 to n do begin

    for j:=1 to m do

    write(cells);

    writeln;

    end;

    end.

  • 0
    @ 2009-05-29 10:27:56

    编译通过...

    ├ 测试数据 01:运行超时...

    ├ 测试数据 02:运行超时...

    ├ 测试数据 03:运行超时...

    ├ 测试数据 04:运行超时...

    ├ 测试数据 05:运行超时...

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

    ├ 测试数据 07:运行超时...

    ├ 测试数据 08:运行超时...

    ├ 测试数据 09:运行超时...

    ├ 测试数据 10:运行超时...

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

    Unaccepted 有效得分:10 有效耗时:0ms

    ................55555555555无语了

  • 0
    @ 2009-04-29 17:27:04

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2009-04-25 20:10:30

    这题有两个细节容易出错:

    1)n和m题目中是m在前n在后;

    2)给的数据从第一秒开始,用小于(

  • 0
    @ 2009-02-28 00:19:30

    DFS把栈给爆了,后面改成FOR,改了五次改过,细节啊。

  • 0
    @ 2009-02-21 21:22:06

    用一个函数判断下一秒状态即可

    program p1415;

    var m,n,t,i,j,l:integer;

    a:array[0..65,0..100,0..100]of integer;

    step:string;

    function life(k,x,y:integer):byte;

    var total,p,q:integer;

    begin

    total:=0;

    for p:=-1 to 1 do

    for q:=-1 to 1 do

    if a[k,x+p,y+q]=1 then inc(total);

    if a[k,x,y]=1 then dec(total);

    case total of

    0..1,4..8:exit(0);

    2:exit(a[k,x,y]);

    3:exit(1);

    end;

    end;

    begin

    readln(m,n,t);

    for i:=1 to n do

    begin

    readln(step);

    for j:=1 to m do

    a[1,i,j]:=ord(step[j])-48;

    end;

    for l:=2 to t do

    for i:=1 to n do

    for j:=1 to m do

    a[l,i,j]:=life(l-1,i,j);

    for i:=1 to n do

    begin

    for j:=1 to m do

    write(a[t,i,j]);

    writeln;

    end;

    end.

  • 0
    @ 2009-01-31 14:55:54

    简单的模拟即可,更新代码:

    function count(a,b:longint;f:boolean):boolean;

    const dx:array[1..8] of shortint=(-1,0,1,1,1,0,-1,-1);

    dy:array[1..8] of shortint=(1,1,1,0,-1,-1,-1,0);

    var kk,tot:integer;

    begin

    tot:=0;

    for kk:=1 to 8 do

    if (a+dx[kk]>0) and (a+dx[kk]0) and (b+dy[kk]

  • 0
    @ 2009-01-23 16:42:57

    仔细审题就好了~交了两次。。。

  • 0
    @ 2009-01-21 23:02:21

    注意!!!

    郁闷原来刚开始就是1s。

    天哪

    仔细还是第一位的...

    这题居然把m放在n前面...

    我三次才ac

    然怪通过率那么低

    真是细节决定成败

  • 0
    @ 2009-01-20 20:53:52

    没错 我的AC的题  再去交  竟然只有 50 分

  • 0
    @ 2009-01-20 20:01:34

    太奇妙了,自己做老是10分,交我同学AC的程序也只有50,~~~~

    活见鬼

信息

ID
1415
难度
6
分类
模拟 点击显示
标签
(无)
递交数
1867
已通过
517
通过率
28%
被复制
3
上传者