1753 poj Flip Game 据说是枚举,我这种DFS算是枚举不?
2012-11-06 18:09
260 查看
题目连接:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1035
题目大意:给你一个黑白的棋盘,每次翻一个子(翻的子上下左右也自动翻),看最后能否返程全黑或者全白、最少要几次。
View Code
题目大意:给你一个黑白的棋盘,每次翻一个子(翻的子上下左右也自动翻),看最后能否返程全黑或者全白、最少要几次。
View Code
#include <stdio.h> #include <string.h> int ans = 10000; char map[10][10]; int pan() { int i,j; for(i = 0;i < 4;i++) { for(j = 0;j < 4;j++) if(map[0][0] != map[i][j]) return 0; } return 1; } int is_map(int i,int j)//边界判断 { if(i >= 0&& i < 4 && j >= 0&& j < 4) return 1; return 0; } void reverse(int i,int j)//翻转 { if(is_map(i,j)) map[i][j] = (map[i][j]+1)%2; if(is_map(i,j-1)) map[i][j-1] =(map[i][j-1]+1)%2; if(is_map(i,j+1)) map[i][j+1] =(map[i][j+1]+1)%2; if(is_map(i+1,j)) map[i+1][j] =(map[i+1][j]+1)%2; if(is_map(i-1,j)) map[i-1][j] =(map[i-1][j]+1)%2; return ; } void search(int i,int j,int step) { int x1,x2,y1y2; if(pan()) { if(ans > step) ans = step; return; } if(is_map(i,j) == 0) return; if(j < 3 && i >=0 && i <= 3)//这个子不翻翻下一个 { search(i,j+1,step); } else { if(i <= 3) { search(i+1,0,step);// } } reverse(i,j);//翻这个子 if(j < 3 && i >=0 && i <= 3)//翻这个子。 { search(i,j+1,step+1); } else { if(i <= 3) { search(i+1,0,step+1); } } reverse(i,j);//反回来,算是回溯。 } int main() { int i,j; for(i = 0;i < 4;i++) { scanf("%s",map[i]); } for(i = 0;i < 4;i++) for(j = 0;j < 4;j++) if(map[i][j] == 'b') map[i][j] = 1; else map[i][j] = 0; search(0,0,0); if(ans != 10000) printf("%d\n",ans); else printf("Impossible\n"); return 0; }
相关文章推荐
- POJ 1753 Flip Game 暴力搜索(dfs加枚举)
- poj 1753 : Flip Game (枚举+dfs)
- POJ 1753 FLIP GAME——枚举深度的dfs
- 文章标题 POJ 1753 : Flip Game(枚举+dfs)
- poj 1753 Flip Game——DFS(分类是枚举)
- poj 1753 : Flip Game (枚举+dfs)
- poJ 1753(dfs) Flip Game
- poj Flip game【DFS 枚举】
- poj Flip Game(DFS)(枚举)
- poj Flip Game(DFS)(枚举)
- 枚举 POJ 1753 Flip Game
- poj Flip Game(DFS)(枚举)
- poj 1753 Flip Game(搜索:DFS+水题)
- poj dfs相关之1753 Flip Game
- poj Flip Game(DFS)(枚举)
- POJ-1753 Flip Game【暴力枚举】
- poj Flip Game(DFS)(枚举)
- POJ 1753 Flip Game(暴力+DFS)
- poj Flip Game(DFS)(枚举)
- POJ 1753:Flip Game:棋盘枚举1