讨论 / 我为什么错?
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
回复 删除
真无语

你从“家族”那提抄过来也不把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.

查看更多回复
提交回复