wordpress新建网站后台无法登陆二手物品交换网站建设
wordpress新建网站后台无法登陆,二手物品交换网站建设,WordPress配置七牛云,网站开发技术实验总结题目
若某个家族人员过于庞大#xff0c;要判断两个是否是亲戚#xff0c;确实还很不容易#xff0c;现在给出某个亲戚关系图#xff0c;求任意给出的两个人是否具有亲戚关系。规定#xff1a;x 和y是亲戚#xff0c;y和z是亲戚#xff0c;那么x和z也是亲戚。如果x要判断两个是否是亲戚确实还很不容易现在给出某个亲戚关系图求任意给出的两个人是否具有亲戚关系。规定x 和y是亲戚y和z是亲戚那么x和z也是亲戚。如果xy是亲戚那么x的亲戚都是y的亲戚y的亲戚也都是x的亲戚。
输入输出格式
输入格式
第一行三个整数n,m,pn,m,p≤5000分别表示有n个人m个亲戚关系询问p对亲戚关系。
以下m行每行两个数MiMj1≤Mi, Mj≤n表示Mi和Mj具有亲戚关系。
接下来p行每行两个数Pi,Pj询问Pi和Pj是否具有亲戚关系。
输出格式
p行每行一个Yes或No。表示第i个询问的答案为“具有”或“不具有”亲戚关系。
输入输出样例
输入样例
6 5 3
1 2
1 5
3 4
5 2
1 3
1 4
2 3
5 6
输出样例
Yes
Yes
No
解析
这个题目将所有有亲戚关系的人归位同一个集合中同一个家族。如果想查询两个人是否具有亲属关系只需要判断这两个人是否为同一个家族内。
判断两个人是否是在同一个家族内时每个家族中选出一位族长来代表整个家族这样只需要直到两个人的族长是否为同一人就能判断出是否属于同一个家族。根据输入的一对对关系来建立这个家族关系之后就知道每位成员的族长是谁。
如果需要查询两个人是否在同一个家族中只需要查询这两个人的族长是否是同一人如果要把两个家族合并就把其中一个家族的族长的负责人指向另外一个家族的族长即可。这种处理不相交可合并的数据结构叫做并查集。并查集具有查询、合并这两种基本操作。
#includeiostream
#define maxn 5010
using namespace std;
int n,m,p,x,y;
int fa[maxn];
int find(int x){//查询是否是同一个集合if(xfa[x]){return x;}return fa[x]find(fa[x]);
}
void join(int c1,int c2){//连接两个集合int f1find(c1),f2find(c2);if(f1!f2){fa[f1]f2;}
}
int main(){cinnmp;for(int i1;in;i){fa[i]i;//初始化自己是自己的族长}for(int i0;im;i){cinxy;join(x,y);}for(int i0;ip;i){cinxy;if(find(x)find(y)){coutYesendl;}else{coutNoendl;}}return 0;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87163.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!