Description
求一个图的连通分量
Input
n 顶点数(<=100)
边
Output
连通分量
Sample Input
5
1 2
3 4
2 3
0 0
Sample Output
4
dfs:
const
maxn=100;
var
a:array[0..maxn] of boolean;
b:array[0..maxn,0..maxn] of boolean;
m,n,y:longint;
procedure dfs(x:longint);
var
i:longint;
begin
if y>m then m:=y;
for i:=1 to n do
if (b[x,i]) and (a[i]=false) then
begin
inc(y);
a[i]:=true;
a[x]:=true;
dfs(i);
end;
end;
var
x,s,i:longint;
begin
m:=0;
readln(n);
readln(x,s);
b[x,s]:=true;
b[s,x]:=true;
while (x<>0)and(s<>0) do
begin
readln(x,s);
b[x,s]:=true;
b[s,x]:=true;
end;
for i:=1 to n do
if not a[i] then
begin
y:=1;
a[i]:=true;
dfs(i);
if y>m then m:=y;
end;
writeln(m);
end.
求联通分量-SSL 1759 深度搜索
最新推荐文章于 2021-12-17 20:43:33 发布