讨论 / 求大牛指点
landinglanding 2012-09-08 18:36:00
点我顶贴 收藏 删除
var a:array[0..51,0..51] of boolean;

b:array[0..51,0..51] of longint;

d,p:array[0..51] of longint;

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

ch:char;

procedure dfs(x,y:longint);

begin

if a[x,y] then

begin

max:=max+1;

a[x,y]:=false;

dfs(x+1,y);

dfs(x-1,y);

dfs(x,y+1);

dfs(x,y-1);

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 a[i,j]:=false;

if ch='R' then

begin

a[i,j]:=true;

inc(l);

d[l]:=i;

p[l]:=j;

end;

if ch='.' then a[i,j]:=true;

end;

end;

readln;

max:=0;

for k:=1 to l do dfs(d[l],p[l]);

writeln(max);

end.

为毛只得了10分?

#1 slzxqjh@2012-09-08 18:36:00
回复 删除
。。。

DFS干嘛,我没有记错的话这题应该是贪心。

查看更多回复
提交回复