1346:【例4-7】亲戚(relation)
发布时间
阅读量:
阅读量
例4-7
//示例代码 会超时
#include <iostream>
using namespace std;
int f[20005];
int find(int x){//查找x所在的集合
if(f[x]==x) return x;//如果x自己就是一个集合的根节点,则返回x
return f[x]=find(f[x]);//否则递归查找x的祖先节点
}
void unionn(int x,int y){//将x和y所在的集合合并
f[find(x)]=find(y);
}
int main()
{
int n,m,q,a,b;
cin>>n>>m;
for(int i=1;i<=n;i++) f[i]=i;//初始化每个人为一个单独的集合
for(int i=1;i<=m;i++){ //处理已知亲戚关系
cin>>a>>b;unionn(a,b);
}
cin>>q;
for(int i=1;i<=q;i++){//查询每一对可能的亲戚
cin>>a>>b;
if(
全部评论 (0)
还没有任何评论哟~
