问题 B: 亲戚

原创 2015年07月10日 09:47:11

题目描述

        或许你并不知道,你的某个朋友是你的亲戚。他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子。如果能得到完整的家谱,判断两个人是否亲戚应该是可行的,但如果两个人的最近公共祖先与他们相隔好几代,使得家谱十分庞大,那么检验亲戚关系实非人力所能及。在这种情况下,最好的帮手就是计算机。为了将问题简化,你将得到一些亲戚关系的信息,如Marry和Tom是亲戚,Tom和Ben是亲戚,等等。从这些信息中,你可以推出Marry和Ben是亲戚。请写一个程序,对于我们的关于亲戚关系的提问,以最快的速度给出答案。

输入

输入由两部分组成。
第一部分以N,M开始。N为问题涉及的人的个数(1≤N≤20000)。这些人的编号为1,2,3,…, N。下面有M行(1≤M≤1 000 000),每行有两个数ai, bi,表示已知ai和bi是亲戚。
第二部分以Q开始。以下Q行有Q个询问(1≤Q≤1 000 000),每行为ci, di,表示询问ci和di是否为亲戚。

输出

对于每个询问ci, di,输出一行:若ci和di为亲戚,则输出“Yes”,否则输出“No”。

样例输入

10 7 2 4 5 7 1 3 8 9 1 2 5 6 2 3 3 3 4 7 10 8 9

样例输出

Yes No Yes
var
 father:array[1..100000] of longint;
 n,m,k,i,a,b:longint;

Function getfather(v:longint):longint;
begin
 if father[v]=v then
   getfather:=v
 else
  begin
   father[v]:=getfather(father[v]);
   getfather:=father[v];
  end;
end;

Procedure int(a,b:longint);
var i,j:longint;
begin
 i:=getfather(a); j:=getfather(b);
 father[i]:=j;
end;
begin
 //assign(input,'input.txt'); reset(input);
 //assign(output,'output.txt'); rewrite(output);
 readln(n,m);
 for i:=1 to n do father[i]:=i;
 for i:=1 to m do
  begin
   read(a,b);
   int(a,b);
  end;
 readln(k);
 for i:=1 to k do
  begin
   read(a,b);
   if getfather(a)=getfather(b) then
   writeln('Yes') else writeln('No');
  end;
 //close(input); close(output);
end.
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

解决亲戚称呼的困扰.doc

  • 2009-06-12 12:15
  • 680KB
  • 下载

亲戚 (并查集路径压缩)

亲戚 (并查集路径压缩) 来源:http://blog.sina.com.cn/s/blog_86995a7d0100v067.html 【问题描述】若某个家族人员过于庞大,要判断两个...

白叟求助民警遭礼遇 错误称有引导亲戚后获报歉

■记者手记   听完世人的讲述后,李先生特别激动,他代表朋友拿钱感激艾女士,艾女士却说什么都不要。斟酌到李先生不是董永义的亲人,为确保老人保险,艾女士提议去邻近的建设北街派出所开份证明,请民警做个证...

【并查集】亲戚

一、题目描述 亲戚(relation.cpp) 时间限制: 1 Sec  内存限制: 64 MB 题目描述 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易。 现在给出某个亲戚关系...

亲戚 并查集经典题目

亲戚 题目描述        或许你并不知道,你的某个朋友是你的亲戚。他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子。如果能得到完整的家谱,判断两个人是否亲戚应该是可行的,但如果两个人的最近公...

FANUC LH-500B 問題與處理

  • 2015-08-15 23:22
  • 58KB
  • 下载

CULA解ax=b问题的代码

高玉伦逃亡226小时被亲戚抓 被捕时瘦成 画片儿

昨日17时,杀警脱逃的高玉伦在青川乡被抓获 9月4日,青川乡百合村,武警站在车顶搜索逃犯 9月5日,延河镇福山村,武警进入废弃小屋搜索高玉伦行踪 新京报讯 公安部刑侦局证实,昨日...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)