文章
166
粉丝
68
获赞
787
访问
45.6k
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1000; // 最大节点数
// 并查集数据结构,用于判断图是否连通
struct UnionFind {
int parent[MAXN];
// 初始化
void init(int n) {
for (int i = 1; i <= n; i++) {
parent[i] = i;
}
}
// 查找根节点
int find(int x) {
if (parent[x] != x) {
parent[x] = find(parent[x]); // 路径压缩
}
return parent[x];
}
// 合并两个集合
void unite(int x, int y) {
int rootX = find(x);
int rootY = find(y);
if (rootX != rootY) {
parent[rootY] = rootX; // 将 y 的根节点指向 x 的根节点
}
}
// 判断是否连通
bool isConnected(int n) {
int root = find(1); // 以节点1为基准
for (int i = 2; i <= n; i++) {
if (find(i) != root) {
return false;
}
}
return true;
}
};
int main() {
int N, M;
while (cin >> N && N != 0)...
登录后发布评论
暂无评论,来抢沙发