上海交大机试 第一题 Easy *并查集
Posted songlinxuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上海交大机试 第一题 Easy *并查集相关的知识,希望对你有一定的参考价值。
基本思想:
无;
关键点:
无;
#include<iostream> #include<string> #include<vector> #include<algorithm> #include<set> using namespace std; const int maxn = 1000000; int father[maxn]; set<int>se; int findfather(int a) { while (father[a] != a) a = father[a]; return a; } void Union(int a, int b) { int aa = findfather(a); int bb = findfather(b); father[aa] = bb; } void init() { for (int i = 0; i < maxn; i++) father[i] = i; } int main() { int n,m; int cnt=0; init(); while (cin >>m>>n) { Union(m, n); se.insert(m); se.insert(n); } for (set<int>::iterator it = se.begin(); it != se.end(); it++) { if (findfather(*it) == *it) cnt++; } cout << cnt << endl; return 0; }
以上是关于上海交大机试 第一题 Easy *并查集的主要内容,如果未能解决你的问题,请参考以下文章