文章

72

粉丝

142

获赞

5

访问

57.7k

头像
1319 为什么错误
我要提问
发布于2024年2月7日 20:20
阅读数 675

#include<iostream>
#include<string>
using namespace std;

const int maxn = 1000 + 5;
int f[maxn];
int height[maxn];

int find(int x) {
    if (x == f[x]) return x;
    f[x] = find(f[x]);
    return f[x];
}


void h(int x, int y) {
    int fx = find(x);
    int fy = find(y);
    if (x != y) {//合并
        if (height[x] > height[y]) {
            f[y] = x;
        }
        else if (height[y] > height[x]) {
            f[x] = y;
        }
        else {
            f[y] = x;
            height[x]++;
     &nbs...

登录查看完整内容


登录后发布评论

1 条评论
snake VIP
2024年2月8日 15:07

合并的时候有点问题

赞(0)