2138=数据结构实验之图论三:判断可达性

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 #define INF 0x3f3f3f3f
 5 int map[1000][1000],visited[1000];
 6 int n,m;
 7 int flag;
 8 void DFS(int t)
 9 {
10     int i;
11     visited[t]=1;
12     for(i=n; i>=1; i--)
13     {
14         if(visited[i]==0&&map[t][i]==1)
15         {
16             DFS(i);
17         }
18     }
19 }
20 int main()
21 {
22     while(~scanf("%d %d",&n,&m))
23     {
24         int i;
25         memset(map,0,sizeof(map));
26         memset(visited,0,sizeof(visited));
27         for(i=1; i<=m; i++)
28         {
29             int a,b;
30             scanf("%d %d",&a,&b);
31             map[a][b]=1;
32         }
33         DFS(n);
34         if(visited[1]==1)
35             printf("YES
");
36         else
37             printf("NO
");
38     }
39     return 0;
40 }
原文地址:https://www.cnblogs.com/Angfe/p/11828177.html