tyvj P1127 - 计算细胞数
P1127 - 计算细胞数From 陈超锐 Normal (OI) 总时限:5s 内存限制:128MB |
||||||
|---|---|---|---|---|---|---|
|
||||||
Delphi语言: 高亮代码由发芽网提供
program tyvj1127;
var mark:array[0..51,0..81] of boolean;
d:array[1..4] of integer=(1,-1,0,0);
l:array[1..4] of integer=(0,0,-1,1);
a:array[0..51,0..81] of integer;
i,j,m,n,ans:integer;
st:string;
procedure dfs(x,y:integer);
var i:integer;
begin
mark[x,y]:=true;
for i:=1 to 4 do
if (a[x+d[i],y+l[i]]>0) and (not mark[x+d[i],y+l[i]]) then
dfs(x+d[i],y+l[i]);
end;
begin
fillchar(a,sizeof(a),0);
fillchar(mark,sizeof(mark),true);
readln(m,n);
for i:=1 to m do begin
readln(st);
for j:=1 to n do begin
mark[i,j]:=false;
a[i,j]:=ord(st[j])-48;
end;
end;
ans:=0;
for i:=1 to m do
for j:=1 to n do
if (not mark[i,j]) and(a[i,j]>0) then begin
inc(ans);
dfs(i,j);
end;
writeln(ans);
end.
var mark:array[0..51,0..81] of boolean;
d:array[1..4] of integer=(1,-1,0,0);
l:array[1..4] of integer=(0,0,-1,1);
a:array[0..51,0..81] of integer;
i,j,m,n,ans:integer;
st:string;
procedure dfs(x,y:integer);
var i:integer;
begin
mark[x,y]:=true;
for i:=1 to 4 do
if (a[x+d[i],y+l[i]]>0) and (not mark[x+d[i],y+l[i]]) then
dfs(x+d[i],y+l[i]);
end;
begin
fillchar(a,sizeof(a),0);
fillchar(mark,sizeof(mark),true);
readln(m,n);
for i:=1 to m do begin
readln(st);
for j:=1 to n do begin
mark[i,j]:=false;
a[i,j]:=ord(st[j])-48;
end;
end;
ans:=0;
for i:=1 to m do
for j:=1 to n do
if (not mark[i,j]) and(a[i,j]>0) then begin
inc(ans);
dfs(i,j);
end;
writeln(ans);
end.
浙公网安备 33010602011771号