看不懂那些的可以看这个
2025-08-19 20:15:53
发布于:广东
1阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n,m,q;
vector<int> a[100010];
struct node{
int idx,v;
};
int vis[100010][2];
void bfs(int x){
queue<node>q;
q.push({x,0});
while(!q.empty()){
node t=q.front();
q.pop();
for(int i=0;i<a[t.idx].size();i++){
int nxt=a[t.idx][i];
int nxt_v=t.v+1;
if(!vis[nxt][nxt_v%2]){
vis[nxt][nxt_v%2]=nxt_v;
q.push({nxt,nxt_v});
}
}
}
}
int main(){
cin>>n>>m>>q;
for(int i=1;i<=m;i++){
int u,v;
cin>>u>>v;
a[u].push_back(v);
a[v].push_back(u);
}
bfs(1);
for(int i=1;i<=q;i++){
int u,t;
cin>>u>>t;
if(vis[u][t%2]&&t>=vis[u][t%2])cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}
这里空空如也
有帮助,赞一个