276 条题解
-
0ccsshi LV 7 @ 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
-
02009-10-10 20:33:52@
Accepted 有效得分:100 有效耗时:0ms
=======---|---|=========华丽的分界线=======---|---|=======
哭!~~
WA了两次!!!! 范围看错!大家注意这个所谓嘚曼哈顿距离是12个点
可见审题要仔细呀!!!!!
说下做法:
这道题最好用 华丽的广度优先搜索 用并查集有点大材小用的感觉。。
先用一个FOR循环 把图的每一个点for一道
广搜每个点深搜貌似也可以过,但没试过。。。
-
02009-10-10 16:12:52@
强烈抗议题目的范围提示!!!!!
害我WA了1次 -
02009-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.上面两个概念是我在模拟过程中自己便于理解提出来的 不要很计较啦~~
-
02009-09-21 20:56:50@
dfs
-
02009-09-20 00:20:20@
floodfill
边看电视边做题效率果然不高 -
02009-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呢???? -
02009-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 有效耗时:0msvar
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) -
02009-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 -
02009-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. -
02009-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 -
02009-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。
告诫广大人民群众不要相信题目的范围。 -
02009-09-01 21:01:05@
为啥广搜过
深搜倒在最后一个数据上?
害得我AC率暴降!! -
02009-08-31 12:28:17@
数组开小了...交了两次......
-
02009-08-27 12:59:58@
递推才是王道~
为了最后一个202,,,不得不用递推搞定,。,。,,
-
02009-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] -
02009-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 有效耗时:0msvar
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.我恨递归,我恨递归……
总而言之就是拼命地搜索,不超时就是王道 -
02009-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 -
02009-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 有效耗时:0msNo.3199
-
02009-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