SDUT 2138 图结构练习——BFSDFS——判断可达性

   题目链接:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2138

   第一个搜索,我也不知道这到底是BFS还是DFS。。。。那个全局标记变量没有初始化,WA了一次。。。本来多么美好的一个开始就这样破坏了。。

 1 #include <stdio.h>

 2 #include <string.h>

 3 int p[1001][1001],o[1001],z;

 4 void dfs(int n,int x)

 5 {

 6     int i;

 7     o[x] = 1;

 8     if(x == 1) z = 1;

 9     for(i = 1;i <= n;i ++)

10     {

11         if(p[x][i] == 1 && o[i] ==0)

12         dfs(n,i);

13     }

14 }

15 int main()

16 {

17     int i,n,m,a,b;

18     while(scanf("%d%d",&n,&m)!=EOF)

19     {

20         z = 0;

21         memset(p,0,sizeof(p));

22         memset(o,0,sizeof(o));

23         for(i = 1;i <= m;i ++)

24         {

25             scanf("%d%d",&a,&b);

26             p[a][b] = 1;

27         }

28         dfs(n,n);

29         if(z)

30         printf("YES\n");

31         else

32         printf("NO\n");

33     }

34     return 0;

35 }

 

你可能感兴趣的:(DFS)