奇偶路线
2024-07-29 15:02:08
发布于:浙江
7阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
vector<int> a[100010];
int ji[100010];
int ou[100010];
int n,m,q;
void bfs(){
queue<pair<int,int> >q;
q.push(make_pair(1,0));
memset(ji,0x3f,sizeof ji);
memset(ou,0x3f,sizeof ou);
ou[1]=0;
while(!q.empty()){
int st=q.front().second,nd=q.front().first;
for(int i=0;i<a[nd].size();i++){
if(st%2==0&&ji[a[nd][i]]>st+1){
q.push(make_pair(a[nd][i],st+1));
ji[a[nd][i]]=st+1;
}
else if(st%2==1&&ou[a[nd][i]]>st+1){
q.push(make_pair(a[nd][i],st+1));
ou[a[nd][i]]=st+1;
}
}
q.pop();
}
}
int main(){
scanf("%d%d%d",&n,&m,&q);
for(int i=1;i<=m;i++){
int u,v;
scanf("%d%d",&u,&v);
a[u].push_back(v);
a[v].push_back(u);
}
bfs();
for(int i=1;i<=q;i++){
int u,t;
scanf("%d%d",&u,&t);
if(t%2==0){
if(ou[u]<=t){
printf("Yes\n");
}
else{
printf("No\n");
}
}
else if(t%2==1){
if(ji[u]<=t){
printf("Yes\n");
}
else{
printf("No\n");
}
}
}
// for(int i=1;i<=n;i++){
// printf("%d ",ji[i]);
// }
// printf("\n");
// for(int i=1;i<=n;i++){
// printf("%d ",ou[i]);
// }
return 0;
}
这里空空如也
有帮助,赞一个