当前位置 : 主页 > 编程语言 > java >

tyvj 1017 冗余关系

来源:互联网 收集:自由互联 发布时间:2022-09-02
题目链接:​​冗余关系​​ 很蠢的一道题目嘛,并查集裸题,给你n个关系,判断有几个关系是不需要的(我们可以从之前的关系中推出来),只需要判断当前两个值是不是在一个集


题目链接:​​冗余关系​​

        很蠢的一道题目嘛,并查集裸题,给你n个关系,判断有几个关系是不需要的(我们可以从之前的关系中推出来),只需要判断当前两个值是不是在一个集合里面就可以了,在就证明多余,其他看代码

#include <bits/stdc++.h>

using namespace std;

int father[1005];

int Find(int x){
if(x == father[x]) return x;
return father[x] = Find(father[x]);
}

bool UnionSet(int x,int y){
int p = Find(x);
int q = Find(y);
if(q != p) {father[p] = q;return false;}
return true;
}

int main(){
int n,m,cot = 0,a,b;
while(cin>>n>>m){
cot = 0;
for(int i = 0;i <= m;i++)
father[i] = i;
while(n--){
cin>>a>>b;
if(UnionSet(a,b)) cot++;
}
cout<<cot<<endl;
}
return 0;
}


上一篇:电脑右键新建没有txt文本
下一篇:没有了
网友评论