题面和P1955一模一样,但是范围是t≤20,n≤100,1≤xi,xj≤100,正解就是搜索或者Floyd,有人帮我看看嘛,在别的OJ过4个WA1个record
#include<iostream>
#include<cstring>
using namespace std;
int eq[105][105],neq[105][105];
int main(){
int t,n,flag;
cin>>t;
while(t--){
cin>>n;
flag=0;
memset(eq,0,sizeof(eq));
memset(neq,0,sizeof(eq));
for(int i=0;i<n;i++){
int xi,xj,xe;
cin>>xi>>xj>>xe;
if(xe){
eq[xi][xj]=1;
eq[xj][xi]=1;
}else{
neq[xj][xi]=1;
neq[xi][xj]=1;
}
}
for(int k=1;k<=100;k++){
for(int i=1;i<=100;i++){
for(int j=1;j<=100;j++){
if(eq[i][k]&&eq[k][j])eq[i][j]=eq[i][k]&&eq[k][j];
}
}
}
for(int i=1;i<=100;i++){
if(flag)break;
for(int j=1;j<=100;j++){
if(eq[i][j]&&neq[i][j]){
flag=1;
cout<<"NO\n";
break;
}
}
}
if(!flag)cout<<"YES\n";
}
return 0;
}