文章

85

粉丝

0

获赞

519

访问

10.7k

头像
并查集 题解:
P1586
发布于2026年3月7日 16:30
阅读数 53

#include <bits/stdc++.h>
using namespace std;
const int Max = 10000;
int fa[Max];

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


int main() {
    int N,M;
    cin>>N>>M;
    for (int i=1;i<=N;i++) {
        fa[i] =i;
    }
    for (int i=0;i<M;i++) {
        int choice,x,y;
        cin>>choice>>x>>y;
        if (choice==1) {
            if (find(x) != find(y)) {
                fa[find(x)] =find(y);
            }
        }
        else {
            if (find(x) != find(y)) {
                cout <<"N"<<endl;
            }
            else {
                cout <<"Y"<<endl;
            }
        }
    }
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发