手机制作网站,专门做二手手机的网站有哪些,做网站微信群,wordpress主题商城主题5929 亲戚 时间限制: 1 s空间限制: 128000 KB题目等级 : 黄金 Gold题目描述 Description若某个家族人员过于庞大#xff0c;要判断两个是否是亲戚#xff0c;确实还很不容易#xff0c;现在给出某个亲戚关系图#xff0c;求任意给出的两个人是否具有亲戚关系。 规定#x… 5929 亲戚 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 若某个家族人员过于庞大要判断两个是否是亲戚确实还很不容易现在给出某个亲戚关系图求任意给出的两个人是否具有亲戚关系。 规定x和y是亲戚y和z是亲戚那么x和z也是亲戚。如果x,y是亲戚那么x的亲戚都是y的亲戚y的亲戚也都是x的亲戚。 输入描述 Input Description 第一行三个整数n,m,pn5000,m5000,p5000分别表示有n个人m个亲戚关系询问p对亲戚关系。 以下m行每行两个数MiMj1MiMjN表示Ai和Bi具有亲戚关系。 接下来p行每行两个数PiPj询问Pi和Pj是否具有亲戚关系。 输出描述 Output Description P行每行一个’Yes’或’No’。表示第i个询问的答案为“具有”或“不具有”亲戚关系。 样例输入 Sample Input 6 5 3
1 2
1 5
3 4
5 2
1 3
1 4
2 3
5 6 样例输出 Sample Output Yes
Yes
No 数据范围及提示 Data Size Hint 题目中已有不重复解释。 #includeiostream
#includecstdio
using namespace std;const int MAXN99999;
int n,m,dad[MAXN],a,b,c,d,q,r1,r2;int find(int x)
{if(x!dad[x]) dad[x]find(dad[x]);return dad[x];
}void unionn(int q,int p)
{dad[r2]r1;
}int main()
{cinnm;cinq;for(int i1;in;i)dad[i]i;for(int j1;jm;j){cinab;r1find(a);r2find(b);if(r1!r2)unionn(r1,r2);}for(int i1;iq;i){cincd;if(find(c)find(d))coutYesendl;elsecoutNoendl;}return 0;
} 转载于:https://www.cnblogs.com/wsdestdq/p/6701143.html