浙江大学机试 畅通工程 Easy
Posted songlinxuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浙江大学机试 畅通工程 Easy相关的知识,希望对你有一定的参考价值。
基本思想:
无;
关键点:
无;
#include<iostream> #include<string> #include<vector> #include<map> using namespace std; const int maxn = 1020; int father[maxn]; int m, n; bool ma[maxn][maxn]; void init(int n) { for (int i = 0; i <= n; i++) father[i] = i; } int findfather(int x) { while (x != father[x]) { x = father[x]; } return x; } void unfather(int a, int b) { int aa = findfather(a); int bb = findfather(b); father[aa] = bb; } int cntnum(int n) { int cnt = 0; for (int i = 1; i <= n; i++) { if (father[i] == i) cnt++; } return cnt; } int main() { while (cin >> n >> m) { if (n == 0) continue; fill(ma[0], ma[0] + maxn * maxn, false); init(n); int a, b; for (int i = 0; i < m; i++) { cin >> a >> b; if (!ma[a][b]) { ma[a][b] = ma[b][a] = true; unfather(a, b); } } cout<<cntnum(n)-1<<endl; } return 0; }
以上是关于浙江大学机试 畅通工程 Easy的主要内容,如果未能解决你的问题,请参考以下文章