亲戚 -hydro

前置知识

并查集以及并查集的优化

分析

就是一道典 && 板的并查集模板,输入有亲戚关系的两个就把他们合并。当输入查询的时候,就查询两者的父亲是否相同,输出Y/N即可

代码

int fa[5010];
int my_find(int x){
    return fa[x] == x ? x : fa[x] = my_find(fa[x]);//路径压缩
}
void merge(int x,int y){
    fa[my_find(x)] = my_find(y);
    return;
}
void solve()
{
    int n, m, k;
    cin >> n >> m >> k;
    for (int i = 1; i <= n; i++)//一定要记得初始化,经常漏
        fa[i] = i;
    while (m--)
    {
        int x, y;
        cin >> x >> y;
        merge(x, y);
    }
    while(k--){
        int x, y;
        cin >> x >> y;
        if(my_find(x) == my_find(y))
            cout << "Yes" << endl;
        else
            cout << "No" << endl;
    }
    return;
}

last

“高山仰止,景行行止。'虽不能至,然心向往之。”

posted @ 2024-01-26 03:01  应许方舟  阅读(9)  评论(0)    收藏  举报