大佬看看我这道题的问题,只是想把爆搜弄懂
查看原帖
大佬看看我这道题的问题,只是想把爆搜弄懂
490978
小超手123楼主2021/9/24 21:39
#include<bits/stdc++.h>
using namespace std;
int n,m,q,a,L;
bool flag;
vector <int> f[10100]; //a[i][j]表示i号工人连接j 
bool vis[10000];
void dfs(int x,int Len){
	if(Len==0){
		if(x==a)flag=true;
		return;
	}
	for(int i=0;i<f[x].size();i++){
		if(vis[i]==0)
		    dfs(f[x][i],Len-1);
	}
}
int main() {
    cin>>n>>m>>q;
    while(m--){
    	int u,v;
    	cin>>u>>v;
    	f[u].push_back(v);
    	f[v].push_back(u);
	}
	while(q--){
		flag=false;
		cin>>a>>L;
		memset(vis,0,sizeof(vis));
		vis[a]=1;
		dfs(a,L);
		if(flag==true)cout<<"Yes"<<endl;
		else cout<<"No"<<endl;
	}
    return 0;
}
2021/9/24 21:39
加载中...