276 条题解

  • 0
    @ 2009-10-21 20:00:20

    送给圣诞夜的极光

    编译通过...

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

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

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

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

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

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

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

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

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

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

    Accepted 有效得分:0 有效耗时:-1ms

  • 0
    @ 2009-10-10 20:33:52

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

    =======---|---|=========华丽的分界线=======---|---|=======

    哭!~~

    WA了两次!!!! 范围看错!

    大家注意这个所谓嘚曼哈顿距离是12个点

    可见审题要仔细呀!!!!!

    说下做法:

    这道题最好用 华丽的广度优先搜索 用并查集有点大材小用的感觉。。

    先用一个FOR循环 把图的每一个点for一道

    广搜每个点

    深搜貌似也可以过,但没试过。。。

  • 0
    @ 2009-10-10 16:12:52

    强烈抗议题目的范围提示!!!!!

    害我WA了1次

  • 0
    @ 2009-10-07 09:14:53

    类似于floodfill的变态做法~

    按规定 我修改了范围,加了几句占内存的,所以就不要“复制→粘贴”了……

    so 领会精神 >,<

    var

    i,j,n,m,count:longint;

    ch:char;

    b,marked:array[1..100,1..100]of boolean;

    procedure fill(x,y,dep:longint); forward; {泛填充子部声明}

    procedure afill(x,y:longint); {精确填充子部}

    begin

    if marked[x,y] then exit;

    if b[x,y+1] then fill(x,y+1,0);

    if b[x+1,y] then fill(x+1,y,0);

    if b[x,y-1] then fill(x,y-1,0);

    if b[x-1,y] then fill(x-1,y,0);

    marked[x,y]:=true;

    end;

    procedure fill(x,y,dep:longint); {泛填充子部}

    begin

    if b[x,y] then dep:=0;

    b[x,y]:=false;

    case dep of

    0:begin

    fill(x,y+1,1);

    fill(x+1,y,1);

    fill(x,y-1,1);

    fill(x-1,y,1);

    end;

    1:afill(x,y);

    end;

    end;

    begin

    readln(n,m);

    for i:=1 to n do

    begin

    for j:=1 to m do

    begin

    read(ch);

    if ch='#' then b:=true;

    end;

    readln;

    end;

    for i:=1 to n do

    for j:=1 to m do

    if b then begin fill(i,j,0); inc(count); end;

    writeln(count);

    end.

    上面两个概念是我在模拟过程中自己便于理解提出来的 不要很计较啦~~

  • 0
    @ 2009-09-21 20:56:50

    dfs

  • 0
    @ 2009-09-20 00:20:20

    floodfill

    边看电视边做题效率果然不高

  • 0
    @ 2009-09-19 19:04:33

    编译通过...

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

    ├ 测试数据 02:运行时错误...|错误号: 202

    ├ 测试数据 03:运行时错误...|错误号: 202

    ├ 测试数据 04:运行时错误...|错误号: 202

    ├ 测试数据 05:运行时错误...|错误号: 202

    ├ 测试数据 06:运行时错误...|错误号: 202

    ├ 测试数据 07:运行时错误...|错误号: 202

    ├ 测试数据 08:运行时错误...|错误号: 202

    ├ 测试数据 09:运行时错误...|错误号: 202

    ├ 测试数据 10:运行时错误...|错误号: 202

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

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

    并查集 做法……

    为什么会过一个数据,这么多202呢????

  • 0
    @ 2009-09-18 22:11:15

    编译通过...

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

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

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

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

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

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

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

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

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

    ├ 测试数据 10:运行时错误...|错误号: 202

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

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

    var

    a:array[-2..103,-2..103]of boolean;

    i,j,n,m,k:longint;

    c:char;

    procedure dfs(i,j:longint);

    var i1,j1:longint;

    begin

    a:=false;

    for i1:=i-2 to i+2 do

    for j1:=j-2 to j+2 do

    if a[i1,j1] and(abs(i1-i)+abs(j1-j)

  • 0
    @ 2009-09-17 12:37:15

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

    Accepted 有效得分:100110 有效耗时:1111111111111111111111ms

  • 0
    @ 2009-09-15 22:55:15

    var

    n,m,s,i,j:integer;

    a:array[-2..102,-2..102]of char;

    procedure dfs(i,j:integer);

    begin

    if a='-' then exit;

    if a='#' then

    begin

    a:='-';

    dfs(i,j-2);

    dfs(i,j+2);

    dfs(i-2,j);

    dfs(i+2,j);

    dfs(i+1,j+1);

    dfs(i+1,j-1);

    dfs(i-1,j+1);

    dfs(i-1,j-1);

    dfs(i-1,j);

    dfs(i+1,j);

    dfs(i,j+1);

    dfs(i,j-1);

    end;

    end;

    procedure init;

    var

    i,j:integer;

    begin

    readln(n,m);

    for i:=-2 to 102 do

    for j:=-2 to 102 do

    a:='-';

    for i:=1 to n do

    begin

    for j:=1 to m do

    read(a);

    readln;

    end;

    end;

    begin

    init;

    s:=0;

    for i:=1 to n do

    for j:=1 to m do

    if a'-' then

    begin

    inc(s);

    dfs(i,j);

    end;

    writeln(s);

    end.

  • 0
    @ 2009-09-14 08:01:19

    const int SIZE = 100;

    const int Go[12][2]={{1,0},{2,0},{1,1},{1,-1},

    {-1,0},{-2,0},

    {0,1},{0,2},{0,-1},{0,-2},

    {-1,1},{-1,-1}};

    深搜搞定!!!!!

    编译通过...

    ├ 测试数据 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-09-07 18:00:45

    第一次:

    a:array[0..100,0..100] of longint;

    flag:array[0..100,0..100] of boolean;

    20分。

    第二次:

    a:array[-10..110,-10..110] of longint;

    flag:array[-10..110,-10..110] of boolean;

    AC。

    告诫广大人民群众不要相信题目的范围。

  • 0
    @ 2009-09-01 21:01:05

    为啥广搜过

    深搜倒在最后一个数据上?

    害得我AC率暴降!!

  • 0
    @ 2009-08-31 12:28:17

    数组开小了...交了两次......

  • 0
    @ 2009-08-27 12:59:58

    递推才是王道~

    为了最后一个202,,,不得不用递推搞定,。,。,,

  • 0
    @ 2009-08-26 18:23:29

    不能再水的搜索。。。

    const x1:array[1..12] of longint=(1,-1,0,0,2,-2,0,0,1,-1,1,-1);

    y1:array[1..12] of longint=(0,0,1,-1,0,0,2,-2,-1,1,1,-1);

    var i,j,k,l,m,n,top:Longint;

    c:array[0..101,0..101] of char;

    f:array[0..101,0..101] of longint;

    procedure dfs(x,y:Longint);

    var i:longint;

    begin

    for i:=1 to 12 do

    if (x+x1[i]>0) and (x+x1[i]0) and (y+y1[i]

  • 0
    @ 2009-08-23 15:28:18

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    var

    i,j,k,s,m,n:longint;

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

    procedure jg(t1,t2:longint);

    var

    i,j:longint;

    begin

    a[t1,t2]:='-';

    if t1+1=1 then if a[t1-2,t2]='#' then jg(t1-2,t2);

    if t2+1=1 then if a[t1,t2-2]='#' then jg(t1,t2-2);

    if (t1+1=1) then if a[t1-1,t2-1]='#' then jg(t1-1,t2-1);

    end;

    begin

    readln(n,m);

    for i:=1 to n do

    begin

    for j:=1 to m do

    read(a);

    readln;

    end;

    k:=0;

    for i:=1 to n do

    for j:=1 to m do

    if a='#' then

    begin

    inc(k);

    jg(i,j);

    end;

    writeln(k);

    end.

    我恨递归,我恨递归……

    总而言之就是拼命地搜索,不超时就是王道

  • 0
    @ 2009-10-10 20:21:46

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    编译通过...

    ├ 测试数据 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-08-19 20:03:01

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    No.3199

  • 0
    @ 2009-08-19 16:20:48

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

信息

ID
1051
难度
4
分类
搜索 | 搜索与剪枝 点击显示
标签
递交数
6196
已通过
2431
通过率
39%
被复制
13
上传者