JSK-并查集-找朋友

题目链接

简单的并查集应用,路径压缩代码:

int get(int x){
	if(x == father[x];
		return x;
		return father[x] = get(father[x]);
}

AC警告

#include<bits/stdc++.h>
using namespace std;
int fa[5005];
int get(int x)
{
    if(x == fa[x])
        return x;
	return fa[x] = get(fa[x]);
}
void merge(int x, int y)
{
    x = get(x);
    y = get(y);
	if(x != y)
		fa[y] = x;
}
int main()
{

    int n, m, p;
    cin>>n>>m>>p;
    for(int i = 0; i <= n; i++)
        fa[i] = i;
    for(int i = 0; i < m; i++){
        int a, b;
        scanf("%d%d",&a, &b);
        merge(a,b);
    }
    for(int i = 0; i < p; ++i){
        int a, b;
        cin>>a>>b;
        if(get(a) == get(b))
            cout<<"Yes"<<endl;
        else
            cout<<"No"<<endl;
    }
    return 0;
}


猜你喜欢

转载自blog.csdn.net/giggle66/article/details/90202600