文章

74

粉丝

0

获赞

94

访问

8.2k

头像
畅通工程 (并查集-路径压缩)模板题解:
P1319 浙江大学机试题
发布于2025年8月29日 19:59
阅读数 26

#include<bits/stdc++.h>
using namespace std;

int fa[1000 + 5];
int find(int x) {
    return x == fa[x] ? x : (fa[x] = find(fa[x]));
}

int main(){

    int m, n;
	while(cin >> n >> m) {

		if(n == 0) break;

        for(int i = 1; i <= n; i ++) fa[i] = i;

        int sum = 0;
        for(int i = 1; i <= m; i ++) {
            int a, b;
            cin >> a >> b;

            int heada = find(a);
            int headb = find(b);

            if(heada != headb) {
                fa[heada] = headb;
                sum ++;
            }
        }

        cout << n - sum - 1 << endl;

	}

	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发