wwww 2008-09-20 05:13:00
点我顶贴
收藏
删除
var a:array[1..5000]of longint;
x,y,p,m,n,j,i,q,max:longint;
begin
read(n,m,p);
for i:=1 to n do a[i]:=i;
for i:=1 to m do
begin
read(x,y);
for j:=1 to n do
if (y<>j)and(a[j]=a[y])then a[j]:=a[x];
a[y]:=a[x];
end;
max:=0;
for i:=1 to n do
begin
q:=0;
for j:=1 to n do if a[j]=a[i] then inc(q);
if q>max then max:=q;
end;
write(max);
end.
#1 Jollwish@2008-09-20 05:13:00
6065
回复
删除
真无语
你从“家族”那提抄过来也不把p去掉...
要说程序自己对吧
(私认为还是用递归好)
var f:array[1..5000]of integer;
i,j,n,m,p,m1,m2,p1,p2,max,s:integer;
function fa(x:integer):integer;
begin
if f[x]=x then exit(x);
fa:=fa(f[x]);
f[x]:=fa;
end;
begin
readln(n,m);
for i:=1 to n do f[i]:=i;
for i:=1 to m do
begin
readln(m1,m2);
f[fa(m2)]:=fa(m1);
end;
max:=0;
for i:=1 to n do
begin
s:=0;
for j:=1 to n do if fa(j)=i then inc(s);
if s>max then max:=s;
end;
writeln(max);
end.