解题思路:想着用二维数组来存储每个人的关系,最后筛选即可,事实有个三分的测试点过不了,就是那句朋友的朋友也是朋友,不知道我这个代码不用并查集函数怎么改,存个档,有思路再改
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,k,row,coloum,relation;
cin>>n>>m>>k;
int a[n+1][n+1];
memset(a,0,sizeof(a));
for(int i=1;i<=m;i++){
cin>>row>>coloum>>relation;
a[row][coloum]=relation;
a[coloum][row]=relation;
}
for(int i=1;i<=k;i++){
cin>>row>>coloum;
if(a[row][coloum]==1)
cout<<"No problem"<<endl;
else if(a[row][coloum]==0){
bool symbol=false;
for(int i=1;i<=n;i++){
if(a[row][i]==1&&a[coloum][i]==1){
symbol=true;
break;
}
}
if(symbol==false)
cout<<"OK"<<endl;
else
cout<<"No problem"<<endl;
}
else if(a[row][coloum]==-1){
bool index=false;
for(int i=1;i<=n;i++){
if(a[row][i]==1&&a[coloum][i]==1){
index=true;
break;
}
}
if(index==false)
cout<<"No way"<<endl;
else
cout<<"OK but..."<<endl;
}
}
}
运行结果: