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 }

 

posted @ 2012-05-28 21:38  Naix_x  阅读(203)  评论(0)    收藏  举报