Flip Game 棋盘翻转(深搜,暴力)POJ1753
来源:互联网 发布:sql范围查询语句 编辑:程序博客网 时间:2024/06/10 21:28
#include<iostream>#include<queue>using namespace std;int dx[5]={-1,0,0,1,0};int dy[5]={0,-1,1,0,0};char chess[4][4];int lujing=10000000;bool judge(){ for(int i=0;i<4;i++){ for(int j=0;j<4;j++){ if(chess[i][j]!=chess[0][0]) return false; } } return true;}void fan(int x,int y){ for(int i=0;i<5;i++){ int nx=x+dx[i],ny=y+dy[i]; if(nx>=0&&nx<4&&ny>=0&&ny<4){ if(chess[nx][ny]=='b') chess[nx][ny]='w'; else chess[nx][ny]='b'; } }}int jux(int x,int y){ if(y==3) return x+1; else return x;}int juy(int x,int y){ if(y==3) return 0; else return y+1;}void dfs(int x,int y,bool a,int changdu){ if(a) fan(x,y); if(judge()&&changdu<lujing){ lujing=changdu; } if(x==3&&y==3){ return; } int nx=jux(x,y); int ny=juy(x,y); dfs(nx,ny,true,changdu+1); fan(nx,ny); dfs(nx,ny,false,changdu);}int main(){ for(int i=0;i<4;i++){ for(int j=0;j<4;j++){ cin>>chess[i][j]; } } dfs(0,0,true,1); fan(0,0); dfs(0,0,false,0); if(lujing<1000000) cout<<lujing<<endl; else cout<<"Impossible"<<endl; return 0;}
1 0
- Flip Game 棋盘翻转(深搜,暴力)POJ1753
- POJ1753 Flip Game(翻转问题且纯枚举暴力翻转)
- Flip Game(poj1753,状态压缩+暴力枚举)
- POJ flip Game翻转棋盘
- poj1753 Flip Game 枚举 暴力 递归
- poj1753--Flip Game(推导)
- poj1753 Flip Game(枚举Enum+dfs)
- (枚举初级+回溯)poj1753 Flip Game
- poj1753 Flip Game
- poj1753 Flip Game
- poj1753 Flip Game
- poj1753 flip game题解
- POJ1753 Flip Game
- POJ1753-Flip Game
- poj1753 - Flip Game
- POJ1753 Flip Game
- poj1753 Flip Game
- POJ1753 Flip Game
- ExecutorService 的理解与使用
- supervisor(一)基础篇
- 对Timer改进,不需要再 viewWillDisappear 中释放
- 人工智能课程总结(一)数学基础 一些值得看的博客链接
- 欢迎使用CSDN-markdown编辑器
- Flip Game 棋盘翻转(深搜,暴力)POJ1753
- apk签名(理论)
- 设计模式(一) 设计模式认识
- centOS下tar: bzip2: Cannot exec: No such file or directo
- 日常小记
- 【深度学习】python用RNN中LSTM进行正弦函数拟合
- js获取滚动条位置
- 解决GAT项目Bug:轨迹分析查询不到数据
- Transparent Handwritten Signatures