样例没过,玄关啦!
查看原帖
样例没过,玄关啦!
1252442
lucy2012楼主2024/7/9 20:32

求调:

#include<bits/stdc++.h>
using namespace std;
int d0[100010],d1[100010];
vector<int> pic[100010];
int n,m,q;
void bfs(){
	queue<pair<int,int> > q;
	for(int i=0;i<pic[1].size();i++){
		pic[1][i]=1;
		q.push(make_pair(pic[1][i],1));
	}
	while(!q.empty()){
		int x=q.front().first,y=q.front().second;
		for(int i=0;i<pic[x].size();i++){
			if(y%2==0){
				if(y+1<d1[pic[x][i]]){
					d1[pic[x][i]]=y+1;
					q.push(make_pair(pic[x][i],y+1));
				}
			}else{
				if(y+1<d0[pic[x][i]]){
					d0[pic[x][i]]=y+1;
					q.push(make_pair(pic[x][i],y+1));
				}
			}
		}
		q.pop();
	}
	return;
}
int main(){
	cin>>n>>m>>q;
	for(int i=1;i<=m;i++){
		int u,v;
		cin>>u>>v;
		pic[u].push_back(v);
		pic[v].push_back(u);
	}
	bfs();
	for(int i=1;i<=q;i++){
		int a,l;
		cin>>a>>l;
		if(l%2==0){
			if(d0[a]>l)
			    cout<<"No"<<endl;
			else
			    cout<<"Yes"<<endl;
		}else{
			if(d1[a]>l)
			    cout<<"No"<<endl;
			else
			    cout<<"Yes"<<endl;
		}
	}
    return 0;
}

感谢大主播(我们班男生口头禅)

2024/7/9 20:32
加载中...