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.