补题
题意:n个人,q个操作
输入 t a b
t=1 a跟随b
t=2 a不跟随b
t=3 查询a是否跟随b同时b跟随a
ps:一个人能跟多个人
错误分析(一开始以为一个人只能跟一个人,并且存在传递跟随)
并且不知道map可以做个二维出来;qwq
#include<bits/stdc++.h>
using namespace std;
map<int ,map<int,int> >m;
int main(){
int t,a,b,n,q;
cin>>n>>q;
m.clear();
for(int i=0;i<q;i++){
cin>>t>>a>>b;
if(t==1){
m[a][b]=1;
}
else if(t==2){
if(t==2){
if(m[a][b]==1){
m[a][b]=0;
}
}
}
else if(t==3){
// int k=m[a],flag=0;
cout<<m[a]<<"\n";
// while(k!=a&&k!=0){
cout<<k<<"\n";
// if(k==b){
//
// flag++;
cout<<"\n";
// break;
// }
// k = m[k];
// }
// k = m[b];
// while(k!=b&&k!=0){
cout<<k<<"\n";
// if(k==a){
// flag++;
cout<<"\n";
// break;
// }
// k = m[k];
// }
cout<<flag<<"\n";
// if(flag==2){
// cout<<"Yes\n";
// }
if(m[a][b]==1&&m[b][a]==1){
cout<<"Yes\n";
}
else{
cout<<"No\n";
}
}
}
return 0;
}