讨论 / 牛们看看
ttdd8 2008-10-17 20:57:00
点我顶贴 收藏 删除
把所有有关系的人都连到一个节点上,然后找人数最多的一堆,为什么得20呢?

program ttdd8;

var person:array[1..1000] of record

root,num:integer;

end;

a,b,i,j,n,m,max:integer;

begin

readln(n,m);

for i:=1 to n do

begin

person[i].root:=i;

person[i].num:=1;

end;

for i:=1 to m do

begin

readln(a,b);

person[person[a].root].num:=person[person[a].root].num+person[person[b].root].num;

for j:=1 to n do

if person[j].root=person[b].root then

person[j].root:=person[a].root;

for j:=1 to n do

if person[j].root=person[a].root then

person[j].num:=person[person[a].root].num;

end;

max:=-1;

for i:=1 to n do

if person[i].num>max then max:=person[i].num;

writeln(max);

end.

查看更多回复
提交回复