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 }

浙公网安备 33010602011771号