#include <iostream>
#include <cstring>
using namespace std;
int map[1123][1123];
int vis[1123];
int p;
void dfs(int k, int n)
{
vis[k] = 1;
for(int i = 0; i < n; i++)
{
if(!vis[i] && map[k][i])
{
dfs(i,n);
}
}
}
int main()
{
int n, m;
while(cin >> n >> m)
{
int u, v;
memset(map,0,sizeof(map));
memset(vis,0,sizeof(vis));
while(m--)
{
cin >> u >> v;
map[u][v] = 1;
}
dfs(n,n);
vis[1] == 1 ? cout << "YES" << endl : cout << "NO" << endl;
}
return 0;
}
图论:判断可达性
最新推荐文章于 2020-12-05 15:34:03 发布