ZOJ 2100 Seeding(深搜)
2010-07-18 17:18
323 查看
这几天心情很不好,不知怎的,做几个搜索练手吧。
Tom想给农田播种,为了不伤害机器 ,他不能走有石头的‘S’,但是又不能走已经播过的地,问他能不能把所有的地都播完。
据说是十分水的一个搜索,要加深对递归的理解,也得感性认识回溯。
Tom想给农田播种,为了不伤害机器 ,他不能走有石头的‘S’,但是又不能走已经播过的地,问他能不能把所有的地都播完。
据说是十分水的一个搜索,要加深对递归的理解,也得感性认识回溯。
#include<stdio.h> char map[8][8]; int visited,flag; int n,i,j,m; void dfs(int x,int y) { if( x<0 || y<0 || x>=n || y>=m) //越界了 return; if(map[x][y]!='.') //已经播过了 return; if(flag) //已经找到了 return; map[x][y] = 'S'; visited++; if(visited == n*m)//判断是否已经全部播种完 { flag=1; return; } dfs(x+1,y); //四个方向搜索 dfs(x-1,y); dfs(x,y+1); dfs(x,y-1); visited--; map[x][y]='.'; } int main(void) { while(scanf("%d%d",&n,&m) && n && m) { for(i=0;i<n;i++) scanf("%s",map[i]); for(i = 0 , visited = 0 ; i < n ; i++) for(j = 0;j<m;j++) if(map[i][j]=='S') visited++; flag = 0; dfs(0,0); if(flag) printf("YES/n"); else printf("NO/n"); } return 0; }
相关文章推荐
- zoj2100 Seeding
- zoj 2100 Seeding
- ZOJ 2100 Seeding(简单DFS)
- zoj 2100 Seeding
- zoj 2100 Seeding
- ZOJ 2100 Seeding
- zoj 2100 seeding
- ZOJ 题目2100 Seeding(DFS)
- ZOJ 2100--Seeding【DFS】
- zoj 2100Seeding
- zoj 2100 Seeding
- zoj Seeding 2100
- zoj 2100 Seeding(dfs)
- Zoj 2100 Seeding
- ZOJ 2100 Seeding
- (DFS)ZOJ 2100 Seeding
- 图的搜索+回溯-Seeding(zoj 2100 )
- ZOJ 2100 Seeding
- zoj 2100 Seeding
- zoj 2100 Seeding