ZOJ:2412 Farm Irrigation
2013-09-19 22:49
435 查看
跟油田那道题很相似,无非是递归方向不一样。
思路很容易想到了,但是因为粗心调试了半天还写错了一个地方,WA了好几次。。。
思路很容易想到了,但是因为粗心调试了半天还写错了一个地方,WA了好几次。。。
#include <iostream> #include <cstdlib> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; struct Farm { bool dir[5]; void init(bool a,bool b,bool c,bool d) { dir[0]=a; dir[1]=b; dir[2]=c; dir[3]=d; } }; Farm p[15]; void Init() { p[0].init(true,true,false,false); p[1].init(true,false,false,true); p[2].init(false,true,true,false); p[3].init(false,false,true,true); p[4].init(true,false,true,false); p[5].init(false,true,false,true); p[6].init(true,true,false,true); p[7].init(true,true,true,false); p[8].init(false,true,true,true); p[9].init(true,false,true,true); p[10].init(true,true,true,true); } int M,N; char grid[55][55]; bool vis[55][55]; bool Judge(int i,int j) { if(0<=i&&i<M&&0<=j&&j<N) return true; return false; } void dfs(int i,int j) { if(vis[i][j]) return; vis[i][j]=true; if(p[grid[i][j]-'A'].dir[0]) { if(Judge(i-1,j)&&p[grid[i-1][j]-'A'].dir[2]) dfs(i-1,j); } if(p[grid[i][j]-'A'].dir[1]) { if(Judge(i,j-1)&&p[grid[i][j-1]-'A'].dir[3]) dfs(i,j-1); } if(p[grid[i][j]-'A'].dir[2]) { if(Judge(i+1,j)&&p[grid[i+1][j]-'A'].dir[0]) dfs(i+1,j); } if(p[grid[i][j]-'A'].dir[3]) { if(Judge(i,j+1)&&p[grid[i][j+1]-'A'].dir[1]) dfs(i,j+1); } } int main() { Init(); while(scanf("%d%d",&M,&N)&&(M>0&&N>0)) { memset(grid,0,sizeof(grid)); for(int i=0; i<M; ++i) scanf("%s",grid[i]); memset(vis,0,sizeof(vis)); int ans=0; for(int i=0; i<M; ++i) for(int j=0; j<N; ++j) if(!vis[i][j]) { ans++; dfs(i,j); } printf("%d\n",ans); } return 0; }
相关文章推荐
- zoj 2412 Farm Irrigation
- zoj2412:Farm Irrigation
- ZOJ 2412 Farm Irrigation
- zoj 2412 Farm Irrigation
- ZOJ 2412 Farm Irrigation
- zoj_2412 Farm Irrigation
- zoj 2412 Farm Irrigation
- ZOJ 2412 Farm Irrigation
- ZOJ 2412 Farm Irrigation
- zoj 2412 Farm Irrigation
- ZOJ 2412(Farm Irrigation)
- zoj 2412 Farm Irrigation
- (zoj 2412 Farm Irrigation)<SB并查集>
- zoj 2412 Farm Irrigation
- ZOJ 2412 Farm Irrigation
- zoj - 2412 - Farm Irrigation
- ZOJ Problem Set - 2412 Farm Irrigation
- ZOJ 2412 Farm Irrigation
- 【搜索入门专题1】E - Farm Irrigation 【BFS】ZOJ 2412
- zoj - 2412 - Farm Irrigation