POJ 1753Flip Game(二进制暴力)
来源:互联网 发布:玫瑰的名字 知乎 编辑:程序博客网 时间:2024/06/05 07:02
传送门:http://poj.org/problem?id=1753
题意比较简单,就是反转一块,同时会反转四周的块,问几步能最少反转,因为一共就16块,所以表示出所有状态也就是1<<16种,直接暴力就可以了。
代码:
<span style="font-size:14px;">#include<stdio.h>#include<string.h>#include<ctype.h>#include<time.h>#include<vector>#include<string>#include<queue>#include<map>#include<set>#include<iostream>#include<cmath>#include<algorithm>using namespace std;#define ff(x) x=(x=='b'?'w':'b');char pic[10][10];char s[5][5];int ans;bool check(){for (int i = 0; i < 4; i++)for (int j = 0; j < 4; j++)if (s[i][j] != s[0][0])return false;return true;}inline bool judge(int x,int y){return x >= 0 && x < 4 && y >= 0 && y < 4;}void flip(int x,int y){ff(s[x][y]);if (judge(x + 1, y)) ff(s[x + 1][y]);if (judge(x - 1, y)) ff(s[x - 1][y]);if (judge(x, y + 1)) ff(s[x][y + 1]);if (judge(x, y - 1)) ff(s[x][y - 1]);}bool trys(int n){int cnt = 0;int i, j;for (i = 0; i < 4; i++)for (j = 0; j < 4; j++)s[i][j] = pic[i][j];for (i = 0; i < 4; i++) for (j = 0; j < 4; j++) if (n&(1 << (i * 4 + j)))cnt++, flip(i, j);if (check()){ans = min(ans, cnt); return true;}return false;}int main(){//freopen("D://input.txt", "r", stdin);//freopen("D://output.txt", "w", stdout);while (scanf("%s", pic[0]) != EOF){ans = 100;bool ok = false;int i, j;for (i = 1; i < 4; i++) scanf("%s", pic[i]);for (i = 0; i < 4; i++)for (j = 0; j < 4; j++)s[i][j] = pic[i][j];if (check()){printf("0\n");continue;}int all = (1 << 16);for (i = 1; i <= all; i++) {//(1<<16)是反转最后一块,其他都不反转,因为没写等号wa了很久ok = trys(i) || ok;}if (ok) printf("%d\n", ans);else printf("Impossible\n");}//printf("%.6f\n", (double)clock() / CLOCKS_PER_SEC);return 0;}</span>
0 0
- POJ 1753Flip Game(二进制暴力)
- POJ 1753 Flip Game(暴力+DFS)
- POJ 1753Flip Game(暴力+Dfs)
- Flip Game (poj 1753)枚举+二进制
- POJ:1753-Flip Game(二进制+bfs)
- POJ 1753 Flip Game 暴力搜索(dfs加枚举)
- POJ 1753 Flip Game (DFS + 暴力枚举)
- 暴力枚举-POJ 1753 flip game
- POJ 1753 Flip Game(暴力+搜索递归)
- POJ-1753 Flip Game【暴力枚举】
- poj 1753 Flip Game 二进制状态压缩
- POJ 1753(Flip Game)
- Flip Game(POJ 1753)
- Flip Game(POJ-1753)
- POJ 1753 Flip Game (DFS 太暴力了!)
- FLIP GAME(暴力搜索)
- poj 1753 Flip Game
- poj 1753 Flip Game
- java输入输出流
- Qt Gradle
- Scala模式匹配(二)
- 软考--线性表操作
- Hbase安装
- POJ 1753Flip Game(二进制暴力)
- 【浅墨Unity3D Shader编程】之八 Unity5新版Shader模板源码解析&运动模糊(径向模糊)屏幕特效的实现
- 参数pdf
- 厦门地图
- Kafka 学习笔记(4) - Consumer和Producer
- 数据库
- 再谈备忘录模式 (memento pattern) Java
- 进制转换16-8-2-10和查表法
- 测试笔试