276 条题解

  • 0
    @ 2010-07-04 17:36:43

    简单题当然多多益善咯。

  • 0
    @ 2010-04-16 19:19:39

    #include

    using namespace std;

    char s[101][101];

    int a[101][101],n,m,v[101][101],ans;

    int way[12][2]={{0,1},{0,2},{1,0},{2,0},{-1,0},{-2,0},{0,-1},{0,-2},{1,1},{1,-1},{-1,1},{-1,-1}};

    bool ok(int x,int y)

    {

    if(x>0&&x0&&yn>>m)

    {

    int i,j;

    memset(a,0,sizeof(a));

    memset(v,0,sizeof(v));

    for(i=1;i>s[i]+1;

    for(j=1;j

  • 0
    @ 2010-04-14 17:31:19

    N早前已不信数据那么小~

    结果爆掉了。。。

    只好乖乖一个个调用打,少占内存~~~

  • 0
    @ 2010-04-13 21:12:06

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    program dhxx;

    const

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

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

    var

    a:array[1..100,1..100]of char;

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

    p,q:char;

    procedure dfs(x,y:longint);

    var

    i,j,k:longint;

    begin

    a[x,y]:='-';

    for i:=1 to 12 do

    if (x+dx[i]>=1)and(x+dx[i]=1)

    and(dy[i]+y

  • 0
    @ 2010-04-08 19:18:15

    太诡异了,第一次测评10分

    我一个程序搞了我半个小时实在找不出.再交一次原程序.更悲剧0分

    我再找不到什么原因了.再将原程序交上去 100!!!!!

    我实在说不出话来了....

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    #include

    #include

    #include

    using namespace std;

    FILE *fin;

    char map[40000];

    long i,j,k,l,m,n;

    long f[4000][4000];

    long way[13][2]={{0,0},{1,1},{2,0},{0,2},{-1,1},{-2,0},{-1,-1},{0,-2},{1,-1},{1,0},{0,1},{-1,0},{0,-1}};

    long dfs(long x,long y)

    { long xx;long yy;

    if(f[x][y]==1)

    {f[x][y]=0;

    for(int i=1;i0&&xx0&&yy

  • 0
    @ 2010-03-18 20:58:57

    如果用DFS要注意,如果只是单纯的搜最后一个数据会202,因为深度最多可达到N*M

  • 0
    @ 2009-11-08 11:10:12

    program light;

    const

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

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

    var

    num,n,m,i,j,ms:longint;

    q:array[1..1000,1..2] of longint;

    g:array[1..1000,1..1000] of char;

    procedure one(i,j:longint);

    var f,r,ii,x,y:longint;

    begin

    if g='-' then exit;

    inc(num);

    f:=1;

    r:=1;

    q[1,1]:=i;

    q[1,2]:=j;

    repeat

    for ii:=1 to 12 do

    begin

    x:=q[f,1]+di[ii];

    y:=q[f,2]+dj[ii];

    if (x>0) and (x0) and (yr;

    end;

    begin

    readln(n,m);

    for i:=1 to n do

    begin

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

    readln;

    end;

    num:=0;

    ms:=n*m;

    for i:=1 to n do for j:=1 to m do one(i,j);

    writeln(num);

    end.

    为什么最后一个点错?

  • 0
    @ 2009-11-04 15:58:22

    BFS,队列的两个数组开大点,我是开了2000没过,又开了40000就过了

    program v1;

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

    var n,m,i,j,s,kk,h,t,x1,y1,l:integer;

    ch:char;

    map:array[-2..200,-2..200]of char;

    x,y:array[0..40000]of integer;

    begin

    readln(n,m); fillchar(map,sizeof(map),'-');

    for i:=1 to n do

    begin

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

    readln

    end;

    s:=0;

    for i:=1 to n do

    for j:=1 to m do

    if map='#' then

    begin

    inc(s);x[1]:=i;y[1]:=j;h:=0;t:=1;map:='-';

    repeat

    inc(h);

    for kk:=1 to 12 do

    begin

    x1:=x[h]+k[kk,1];y1:=y[h]+k[kk,2];

    if map[x1,y1]='#' then begin map[x1,y1]:='-';inc(t);x[t]:=x1;y[t]:=y1;end;

    end;

    until h>=t;

    end;

    write(s);

    end.

  • 0
    @ 2009-11-04 10:46:30

    抑郁啦,真的是逼我啦,自己测都对,vijos来个堆栈溢出错,气死我啦,最终还是开了编译开关过的!vijos不检查编译开关!吼吼!

    {$m 1000000,0,2000000}两兆的系统栈我就不信还出错!哼!

    果然AC哈哈!

  • 0
    @ 2009-11-02 21:41:34

    program big;

    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-10-25 09:48:28

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

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

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

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

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

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

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

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

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

    ├ 测试数据 10:答案错误... ├ 标准行输出 1

      ├ 错误行输出 2

    BFS,最后一组什么猥琐数据`\

    逼我IF啊`\

  • 0
    @ 2009-10-23 08:24:27

    存好12个方向

    然后Floodfill即可

    编译通过...

    ├ 测试数据 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-10-22 16:13:28

    种子填充法,很好很强大。

    程序23行,一次性秒杀。

  • 0
    @ 2009-10-21 21:26:57

    var

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

    map:array[1..100,1..100]of char;

    procedure dfs(x,y:longint);

    var

    i,j:longint;

    begin

    map[x,y]:='-';

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

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

    if (i=1)and(j=1) then

    begin

    if ((abs(i-x)+abs(j-y))

  • 0
    @ 2009-10-21 21:12:48

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

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

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

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

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

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

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

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

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

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

    并查集才是王道!!floodfill的dfs我只有弱弱的90分。。哎。。

  • 0
    @ 2009-10-20 10:42:30

    深搜堆栈溢出真糟糕。。。

  • 0
    @ 2009-10-15 09:19:13

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

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

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

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

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

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

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

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

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

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

    有些恶心...

    但我这是一次AC啊..

    鼓励鼓励.....

  • 0
    @ 2009-10-14 20:33:05

    我是中规中矩的搜索,但......

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

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

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

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

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

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

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

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

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

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

    哪位大牛看一看啊?

    谢了!!!

  • 0
    @ 2009-10-13 16:44:15

    这样写,最后一点202

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

    procedure dfs(i,j:longint);

    var c,xx,yy:longint;

    begin

    a:=false;

    for c:=1 to 12 do

    begin

    xx:=i+p[c,1];

    yy:=j+p[c,2];

    if a[xx,yy] then dfs(xx,yy);

    end;

    end;

    这样写:

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

    procedure dfs(i,j:longint);

    var c,xx,yy:longint;

    begin

    if not a then exit;

    a:=false;

    for c:=1 to 12 do

    begin

    //xx:=i+p[c,1];

    //yy:=j+p[c,2];

    //if a[xx,yy]='#' then

    dfs(i+p[c,1],j+p[c,2]);

    end;

    end;

    AC

    why??

  • 0
    @ 2009-10-11 20:34:37

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    简单的BFS

信息

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