#include<bits/stdc++.h>
using namespace std;
map <int,int> fa;
vector < pair<int,int> > cha;
int find1(int x)
{
if(fa[x]==0) return 0;
if(fa[x]==x) return x;
else return fa[x]=find1(fa[x]);
}
void u(int x,int y)//将y的父亲置为x
{
int fx=find1(x),fy=find1(y);
fa[fy]=fx;
}
int main()
{
freopen("P1955_2.in","r",stdin);
ios::sync_with_stdio(false);
int k;cin>>k;
while(k--)
{
cha.clear();
fa.clear();
int num;cin>>num;
for(int i=1;i<=num;i++)
{
int a,b,c;cin>>a>>b>>c;
if(c==0)
cha.push_back(make_pair(a,b));
else
{
if(fa[a]==0) fa[a]=a;
if(fa[b]==0) fa[b]=b;
u(a,b);
}
}
bool check=1;
for(int i=0;i<cha.size();i++)
{
int a=find1(cha[i].first),b=find1(cha[i].second);
if(a==b&&(!(a==0&&b==0)))
{
cout<<"NO"<<endl;
check=0;
break;
}
}
if(check) cout<<"YES"<<endl;
}
return 0;
}
是不是我不该用裸的map