没写离散化,但是正常来说能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!?