洛谷P1955

没写离散化,但是正常来说能RE70,但是!!!为什么是WA0!!??

#include<bits/stdc++.h>
using namespace std;
int t,n;
int f[10005];
struct node{
	int x,y;
}g[100005];
int find(int x){
	if(f[x]==x) return f[x];
	return f[x]=find(f[x]);
}
int main(){
	cin>>t;
	while(t--){
		bool tmp=1;
		int g1=1;
		memset(f,0,sizeof(f));
		cin>>n;
		for(int i=1;i<=10005;i++) f[i]=i;
		for(int i=0;i<n;i++){
			int a,b,op;
			cin>>a>>b>>op;
			if(op==1){
				int A=find(a),B=find(b);
				if(A!=B) f[A]=B;
			}
			else{
				g[g1++]=node{a,b};
			}
		}
		for(int i=1;i<g1;i++){
			if(find(g[i].x)==find(g[i].y)){
				tmp=0;
				break;
			}
		}
//		cout<<(tmp?"YES":"NO")<<"\n";
		if(tmp) cout<<"YES\n";
		else cout<<"NO\n";
	}
	return 0;
}

我还为此下了个样例,也没问题啊,为什么是WA0!?

2 个赞

悬赏一个解决方案和一个赞。。。

3 个赞

所以,你洛谷号叫什么,我叫lgydkkyd

2 个赞

写绿题,这么强的吗

2 个赞

我基本就写写黄题

2 个赞