POJ-1753-Flip Game
2013-05-09 20:34
267 查看
状态压缩的BFS搜索题,我采用的是反向搜索~
代码:
代码:
#include<cstdio> #include<cstring> #include<iostream> #include<queue> using namespace std; const int maxn=100001; struct node { int num; int step; }; char map[5][5]; int ans[maxn]; queue<node> q; void Init() { q.push((node){0,0}); q.push((node){65535,0}); while(!q.empty()) { node ita=q.front(); q.pop(); for(int i=0;i<4;i++) for(int j=0;j<4;j++) { int itb=ita.num; itb^=1<<(i*4+j); if(i>0) itb^=1<<((i-1)*4+j); if(i<3) itb^=1<<((i+1)*4+j); if(j>0) itb^=1<<(i*4+j-1); if(j<3) itb^=1<<(i*4+j+1); if(!ans[itb]) { ans[itb]=ita.step+1; q.push((node){itb,ans[itb]}); } } } } int main() { Init(); for(int i=0;i<4;i++) scanf("%s",map[i]); int res=0; for(int i=0;i<4;i++) for(int j=0;j<4;j++) if(map[i][j]=='b') res|=1<<(i*4)+j; if(res==0||res==65535) printf("0\n"); else if(ans[res]==0) printf("Impossible\n"); else printf("%d\n",ans[res]); return 0; }
相关文章推荐
- POJ 1753 Flip Game(BFS+状态压缩)
- zoj 2050_poj 1753 Flip Game(状态压缩 简单BFS)
- POJ 1753 Flip Game 解题报告(高斯消元法)
- POJ-1753 Flip Game 枚举 状态压缩
- POJ1753 Flip Game(翻转问题且纯枚举暴力翻转)
- POJ 1753 Flip Game (递归枚举)
- POJ 1753 Flip Game(dfs+枚举)
- POJ 1753 Flip Game
- POJ 1753 Flip Game(翻转棋盘+枚举+dfs)
- POJ - 1753 Flip Game(枚举+反转)
- POJ 1753 Flip Game
- POJ 1753 Flip Game 状态压缩 枚举
- POJ 1753 Flip Game (递归枚举)解题报告
- poj1753 Flip Game 状态压缩+bfs
- poj 1753 Flip Game(高斯消元 开关问题)
- POJ 1753 Flip Game
- poj 1753 Flip Game 高斯消元 异或方程组 求最值
- POJ 1753 Flip Game
- poj 1753 Flip Game
- poj 1753 Flip Game 高斯消元+枚举