讨论 / 并查集34行短小代码
Hoblovski 2013-05-26 06:38:00
点我顶贴 收藏 删除
话说原题n是10^5级别什么的吧,怎么这里就水了。

顺便翻最优解,前十页都是C++和C

var pr:array[1..5000] of longint;//包含了pr与c

n,m,ques,a,b,t1,t2:longint;

function find(q:longint):longint;

begin

if pr[q]<0 then exit(q);

pr[q]:=find(pr[q]);

exit(pr[q]);

end;

procedure union(q,w:longint);

begin

if q=w then exit;

if pr[q]<pr[w] then begin

inc(pr[q],pr[w]);

pr[w]:=q;

end else begin

inc(pr[w],pr[q]);

pr[q]:=w;

end;

end;

begin

readln(n,m,ques);

fillchar(pr,sizeof(pr),$ff);

for a:=1 to m do begin

readln(t1,t2);

union(find(t1),find(t2));

end;

for a:=1 to ques do begin

readln(t1,t2);

if find(t1)=find(t2) then writeln('Yes') else writeln('No');

end;

end.

#1 小康同志@2013-11-17 20:42:18
回复 删除
大哥,我用C++28行就可以了。。。
查看更多回复
提交回复