#include<bits/stdc++.h>
using namespace std;
int n,m,p,mp[5005][5005],dis[5005][5005];
queue<int>q;
void bfs(int x){
while(!q.empty()){
int u=q.front();q.pop();
for(int i=1;i<=n;i++){
int v=i,w=mp[u][i];
if(w&&dis[x][v]==-1){
dis[x][v]=dis[x][u]+1;
q.push(v);
}
}
}
}
int main(){
scanf("%d%d%d",&n,&m,&p);
while(m--){
int u,v;scanf("%d%d",&u,&v);
mp[u][v]=mp[v][u]=1;
}
memset(dis,-1,sizeof(dis));
for(int i=1;i<=n;i++){
dis[i][i]=0;
q.push(i);
bfs(i);
}
while(p--){
int u,v;scanf("%d%d",&u,&v);
if(dis[u][v]==-1)printf("No\n");
else printf("Yes\n");
}
fflush(stdin);
fflush(stdout);
return 0;
}
第 5 个点TLE,6~10 MLE。有没有大佬能救救我。