题目: | 家族 | |
来源: | Tyvj 1251 | |
题目大意: | N个数,M对关系(数和数的关系)p次询问(数和数是否有关系) | |
数据范围: | n<=5000,m<=5000,p<=5000 | |
样例: | 6 5 3 1 2 1 5 3 4 5 2 1 3 1 4 2 3 5 6 | Yes Yes No |
做题思路: | 并查集经典题,麽思路 | |
知识点: | 并查集 |
var
f:array[0..5010]of longint;
x,y,n,m,i,p:longint;
function getf(x:longint):longint;{<找爹>}
begin
iff[x]=x then exit(x)
else getf:=getf(f[x]);
end;
procedure union(x,y:longint);{<合并>}
begin
f[getf(x)]:=getf(y);
end;
begin
readln(n,m,p);
fori:=1 to n do f[i]:=i;
fori:=1 to m do
begin
readln(x,y);
ifgetf(x)<>getf(y) then union(x,y);
end;
fori:=1 to p do
begin
readln(x,y);
ifgetf(x)<>getf(y) then writeln('No') else writeln('Yes');
end;
end.
题目来源:
http://www.tyvj.cn:8080/Problem_Show.asp?id=1251