#include<map>
#include<queue>
#include<iostream>
#include<vector>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn = 1e8 + 5;
const int maxm = 1e6 + 1;
struct tx{
int x,y,e;
friend bool operator < (tx a,tx b){
return a.e<b.e;
}
} now;
priority_queue<tx> q;
map<int,int> fa;
int n,m,a,b,c;
int find(int x){
if(x!=fa[x]) fa[x]=find(fa[x]);
return fa[x];
}
void hebing(int x,int y){
int a1=find(x),a2=find(y);
fa[a1]=a2;
}
int main(){
int t;
cin>>t;
while(t--){
bool flag=0;
cin>>n;
for(int i=1;i<=n;i++){
cin>>now.x>>now.y>>now.e;
q.push(now);
}
for(int i=1;i<=n*2;i++) fa[i]=i;
for(int i=1;i<=n;i++){
now=q.top();q.pop();
if(now.e==1) hebing(now.x,now.y);
else if(find(now.x)==now.y||find(now.y)==now.x){
cout<<"NO"<<endl;flag=1;break;
}
}
if(!flag)cout<<"YES"<<endl;
}
return 0;
}
为什么样例点都通过但却只有10分, 而且
for(int i=1;i<=n*2;i++) fa[i]=i;
这一句中为什么 n*2 写大一点就会一直YES