爱玲姐姐 5 年 前
コミット
ab99feb8ee
1 ファイル変更33 行追加0 行削除
  1. 33 0
      B.cpp

+ 33 - 0
B.cpp

@@ -0,0 +1,33 @@
+#include <bits/stdc++.h>
+using namespace std;
+const int MAXN = 1001;
+int F[MAXN];
+int father(int x){
+    return x == F[x] ? F[x] : F[x] = father(F[x]);
+}
+void merge(int x, int y){
+    int rx = father(x);
+    int ry = father(y);
+    if(rx != ry){
+        F[rx] = ry;
+    }
+}
+int main(){
+    int n, m;
+    while(cin >> n >> m){
+        if(n == 0)break;
+        for(int i = 1; i <= n; i++){
+            F[i] = i;
+        }
+        for(int i = 1; i <= m; i++){
+            int x, y;
+            cin >> x >> y;
+            merge(x, y);
+        }
+        int cnt = 0;
+        for(int i = 1; i <= n; i++){
+            if(F[i] == i)cnt++;
+        }
+        cout << cnt - 1 <<endl;
+    }
+}