并查集RE 0pts求助
查看原帖
并查集RE 0pts求助
725807
lizeyuannb楼主2022/8/13 11:55
#include <iostream>
#include <cstdio>
using namespace std;

const int N = 1e5 + 5;

int n, m, a, b;
int ans[N], fa[N];
char s[N], c;

int find(int x) {
    if(fa[x] == x) return x;
    return fa[x] = find(fa[x]);
}
int merge(int x, int y) {
    fa[find(x)] = find(y);
}

int main() {
    cin >> n >> m;
    for(int i = 1; i <= n; i ++) {
        cin >> s[i];
        fa[i] = i;
    }
    for(int i = 1, u, v; i < n; i ++) {
        cin >> u >> v;
        if(s[u] == s[v]) merge(u, v);
    }
    for(int i = 1; i <= m; i ++) {
        cin >> a >> b >> c;
        if(find(a) == find(b) && s[a] != c) cout << 0;
        else cout << 1;
    }
    return 0;
}

蒟蒻快崩溃了,一直是RE 0pts,求助

2022/8/13 11:55
加载中...