题解
2024-12-09 20:12:23
发布于:北京
6阅读
0回复
0点赞
#include<iostream>
#include<cstring>
using namespace std;
const int N=1e6+5;
struct node{
int to,next;
};
node edge[N*2];
int vex[N],n,m,ei=1,a,b;
int vis[N];
bool flag=1;
void abb(int u,int v){
edge[ei].to=v;
edge[ei].next=vex[u];
vex[u]=ei++;
}
void dfs(int s){
vis[s]=1;
if(s==b){
cout<<"Yes";
flag=0;
return;
}
int index=vex[s];
while(index!=-1){
int v=edge[index].to;
if(!vis[v]){
dfs(v);
}
index=edge[index].next;
}
}
int main(){
cin>>n>>m>>a>>b;
memset(vex,-1,sizeof vex);
for(int i=0;i<m;i++){
int u,v;
cin>>u>>v;
abb(u,v);
}
dfs(a);
if(flag){
cout<<"No";
}
return 0;
}
这里空空如也
有帮助,赞一个