求连通分量

来源:互联网 发布:伤感网络歌曲 编辑:程序博客网 时间:2024/05/17 03:40

求连通分量

Time Limit:1000MS  Memory Limit:65536K
Total Submit:227 Accepted:128

Description

求一个图的连通分量

Input

n 顶点数(<=100) 

Output

连通分量

Sample Input

51 23 42 30 0

Sample Output

4
var v:array[1..100]of boolean; a:array[0..100,0..100]of boolean; i,n,max,ans,x,y:longint;procedure dfs(i:longint); var j:longint; begin  for j:=1 to n do   if (a[i,j])and(v[j]) then   begin    v[j]:=false;    inc(ans);    dfs(j);   end; end;begin read(n); fillchar(a,sizeof(a),false); fillchar(v,sizeof(v),true); read(x,y); while (x<>0)or(y<>0) do  begin   a[x,y]:=true;   a[y,x]:=true;   readln(x,y);  end;  for i:=1 to n do   begin    if ans>=max then max:=ans;    ans:=0;    dfs(i);    fillchar(v,sizeof(v),true);   end; write(max);end.
2 0