文章
71
粉丝
142
获赞
5
访问
52.9k
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn = 1000 + 5;
int f[maxn];
int height[maxn];
struct node{
int u, v, w;
}edge[maxn*maxn];
int find(int x) {
if (x == f[x]) return x;
f[x] = find(f[x]);
return f[x];
}
void Union(int fx,int fy) {
int x = find(fx);
int y = find(fy);
if(x!=y){
if (height[x] > height[y])
f[y] = x;
else if(height[x] < height[y])
f[x] = y;
else {
f[x] = y;
height[y]++;
}
}
}
int cmp(node x,node y) {
return x.w < y.w;
}
int main() {
&...
登录后发布评论
edge存储的下标从0开始