这数组够大了吧
#include<bits/stdc++.h>
#define int long long
using namespace std;
int f[1145140],n,x[1145140],y[1145140],op[1145140],flag=0,t;
int find(int x)
{
if(f[x]!=x)
f[x]=find(f[x]);
return f[x];
}
signed main()
{
//freopen("test.in","r",stdin);
cin>>t;
while(t--)
{
memset(f,0,sizeof(f));
flag=0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>x[i]>>y[i]>>op[i];
f[x[i]]=x[i];
f[y[i]]=y[i];
}
for(int i=1;i<=n;i++)
if(op[i]==1)
f[find(y[i])]=find(x[i]);
for(int i=1;i<=n;i++)
if(!op[i])
if(find(x[i])==find(y[i]))
{
cout<<"NO\n";
flag=1;
break;
}
if(!flag)
cout<<"YES\n";
}
}