求调 35pts
查看原帖
求调 35pts
1368930
chenzhexuan1楼主2024/10/4 22:51
#include <iostream>
#include <vector>
#include <queue> 
#include <cstring>
#define N 100005
using namespace std;
struct Node{
	int x,s;
	Node(){}
	Node(int a,int b):x(a),s(b){}
};
vector<int> vec[N];
int n,m,q;
bool bfs(int stx,int s){
	if(stx==1&&s==1)return false;
	if(stx==1&&vec[1].empty())return true;
	queue<Node> que;
	que.push(Node(stx,0));
	while(!que.empty()){
		Node u=que.front();
		que.pop();
		if(u.x==1&&u.s==s)return true;
		else if(u.x==1&&u.s>s)return false;
		for(int i=0;i<vec[u.x].size();i++)que.push(Node(vec[u.x][i],u.s+1));
	}
	return false;
}
int main(){
	cin>>n>>m>>q;
	for(int i=1;i<=m;i++){
		int a,b;
		cin>>a>>b;
		vec[a].push_back(b);
		vec[b].push_back(a);
	}
	for(int i=1;i<=q;i++){
		int a,b;
		cin>>a>>b;
		cout<<(bfs(a,b)?"Yes":"No")<<endl;
	}
}

剩下全部mle 如果加上vis标记数组会出现wa的情况

2024/10/4 22:51
加载中...