链式前项星做法
2026-06-24 13:52:27
发布于:广东
0阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n,m,a,b,h[200005],e[200005],ne[200005],idx;int vis[200005];//定义链式前向星和标记数组
void add(int a,int b){
e[idx]=b;
ne[idx]=h[a];
h[a]=idx++;
}//祖传输入
void dfs(int x){//深搜函数
vis[x]=1;
for(int i=h[x];i!=-1;i=ne[i]){
if(vis[e[i]]==0){
dfs(e[i]);
}
}//链式前向星遍历
}
int main(){
cin>>n>>m>>a>>b;
memset(h,-1,sizeof h);
for(int i=1;i<=m;i++){
int l,r;
cin>>l>>r;
add(l,r);//输入
}
dfs(a);深搜(电风扇)
if(vis[b]){
cout<<"Yes";
}
else{
cout<<"No";
}//终点判断+输出
return 0;
}
这里空空如也







有帮助,赞一个