7
2024-08-10 18:40:36
发布于:广东
#include <bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int vis[N];
vector<int> v[N];
int n,m,x,y;
bool flag =false;
void bfs(int cur){
vis[cur]=1;
queue<int> q;
q.push(cur);
while(!q.empty()){
int head =q.front();
q.pop();
if(head==y){
flag=true;
return;
}
for(int i=0;i<v[head].size();i++){
int canGo = v[head][i];
if(vis[canGo]==0){
vis[canGo]=1;
q.push(canGo);
}
}
}
}
int main(){
cin>>n>>m>>x>>y;
for(int i=1;i<=m;i++){
int s,e;
cin>>s>>e;
v[s].push_back(e);
}
bfs(x);
if(flag==true)cout<<"Yes";
else cout<<"No";
}
这里空空如也
有帮助,赞一个