思路是对的啊,数据也是够的,不知道为啥全爆了
#include<bits/stdc++.h>
using namespace std;
const int maxn = 5005;
int f[maxn];
int find(int x){return f[x]==x?x:f[x] = find(f[x]);}
int main(){
int n,m,p;
cin>>n>>m>>p;
for(int i = 1;i<=n;i++){
f[i] = i;
}
for(int i = 1;i<=m;i++){
int x,y;
cin>>x>>y;
f[find(x)] = find(y);
}
for(int i = 1;i<=p;i++){
int x,y;
cin>>x>>y;
if(find(x)==find(y))cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}