WA30分求助
查看原帖
WA30分求助
200044
JS_TZ_ZHR楼主2020/9/19 22:20

RT

#include<bits/stdc++.h>
using namespace std;
int T,n,x[10000005],y[10000005],opt[10000005];
map<int,int>f;
bool flag;
int find(int now) {
	if(now==f[now])return now;
	return f[now]=find(f[now]);
}
int main() {
	//freopen("1.in","r",stdin);
	scanf("%d",&T);
	while(T--) {
		scanf("%d",&n);
		flag=true;
		f.clear();
		for(int i=1; i<=n; i++) {
			scanf("%d%d%d",&x[i],&y[i],&opt[i]);
			f[x[i]]=x[i];
			f[y[i]]=y[i];
		}
		for(int i=1; i<=n; i++) {
			int ex=find(x[i]),ey=find(y[i]);
			if(opt[i])f[ex]=ey;
			else {
				if(ex==ey) {
					flag=false;
					break;
				}
			}
		}
		if(flag)puts("YES");
		else puts("NO");
	}
}
2020/9/19 22:20
加载中...