新人求助,并查集那题,样例AC提交WA
查看原帖
新人求助,并查集那题,样例AC提交WA
390770
S0CRiA楼主2020/11/25 22:45

RUN ID42600775

以下是我的代码:

//P3367
#include <iostream>
using namespace std;
int a[10005];

void init(int n){
	for(int i=1; i<=n; i++) a[i]=i;
	return;
}

int get_father(int n){
	if(a[n]==n) return n;
	a[n]=get_father(a[n]);
	return a[n];
}

bool merge(int x,int y){
	int f1,f2;
	f1=get_father(x);
	f2=get_father(y);
	if(f1==f2) return true;
	a[y]=f1;
	return false;
}

int main(){
	int n,m,flg,in1,in2;
	cin >> n >> m;
	init(n);
	for(int i=0; i<m; i++){
		cin >> flg >> in1 >> in2;
		bool same=merge(in1,in2);
		if(flg==2){
			if(same) cout << 'Y' << endl;
			else     cout << 'N' << endl;
		}
	}
	return 0;
}

(

2020/11/25 22:45
加载中...