枚举 POJ 1753 Flip Game
2015-03-27 16:16
399 查看
题目地址:http://poj.org/problem?id=1753
/* 这题几乎和POJ 2965一样,DFS函数都不用修改 只要修改一下change规则。。。 注意:是否初始已经ok了要先判断 */ #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #include <cmath> #include <string> #include <map> #include <queue> #include <vector> using namespace std; const int MAXN = 1e6 + 10; const int INF = 0x3f3f3f3f; int a[5][5]; bool flag; bool ok(void) { int tmp = a[1][1]; for (int i=1; i<=4; ++i) { for (int j=1; j<=4; ++j) if (a[i][j] != tmp) return false; } return true; } void change(int x, int y) { a[x][y] = !a[x][y]; if (x > 1) a[x-1][y] = !a[x-1][y]; if (x < 4) a[x+1][y] = !a[x+1][y]; if (y > 1) a[x][y-1] = !a[x][y-1]; if (y < 4) a[x][y+1] = !a[x][y+1]; } void DFS(int x, int y, int num, int cnt) { if (num == cnt) { flag = ok (); return ; } for (int i=x; i<=4; ++i) { int j; if (i == x) j = y + 1; else j = 1; for (; j<=4; ++j) { change (i, j); DFS (i, j, num+1, cnt); if (flag) return ; change (i, j); } } } void work(void) { if (ok ()) { printf ("%d\n", 0); return ; } int cnt; for (cnt=1; cnt<=16; ++cnt) //最多16次,可以暴力枚举 { flag = false; DFS (1, 0, 0, cnt); if (flag) break; } (cnt <= 16) ? printf ("%d\n", cnt) : puts ("Impossible"); } int main(void) //POJ 1753 Flip Game { //freopen ("A.in", "r", stdin); char ch; for (int i=1; i<=4; ++i) { for (int j=1; j<=4; ++j) //b-0 w-1 { scanf ("%c", &ch); a[i][j] = (ch == 'b') ? 0 : 1; } getchar (); } work (); return 0; } /* Impossible */
相关文章推荐
- POJ-1753 Flip Game【暴力枚举】
- POJ 1753:Flip Game:棋盘枚举1
- 【状态压缩枚举】poj 1753 Flip Game
- POJ 1753 FLIP GAME——枚举深度的dfs
- Flip Game【POJ--1753】【枚举】【高斯消元】
- POJ 1753 Flip Game 暴力搜索(dfs加枚举)
- poj 1753 : Flip Game (枚举+dfs)
- 1753 poj Flip Game 据说是枚举,我这种DFS算是枚举不?
- POJ1753 Flip Game(搜索,枚举,位运算压缩)
- poj 1753 Flip Game——DFS(分类是枚举)
- (枚举初级+回溯)poj1753 Flip Game
- poj 1753 : Flip Game (枚举+dfs)
- 文章标题 POJ 1753 : Flip Game(枚举+dfs)
- poj1753 Flip Game
- poj 1753--Flip Game
- poj Flip Game(DFS)(枚举)
- ACM篇:POJ 1753----Flip Game
- poj 1753 Flip Game
- POJ 1753: Flip Game
- POJ 1753 - Flip Game