pojFilp Game2965 翻转棋子
来源:互联网 发布:qq三国js心法 编辑:程序博客网 时间:2024/05/17 08:24
题目来源
http://poj.org/problem?id=1753
#include<stdio.h>int map[10][10],ans=999999;char s[10];int panduan() //判断是否都为同一色{ int m=map[0][0]; for(int i=0; i<4; i++) for(int j=0; j<4; j++) if(map[i][j]!=m)return 0; return 1;}void fan(int x,int y) //将这一点和四个方向的棋子翻转{ map[x][y]=!map[x][y]; if(x-1>=0) map[x-1][y]=!map[x-1][y]; if(x+1<4) map[x+1][y]=!map[x+1][y]; if(y-1>=0) map[x][y-1]=!map[x][y-1]; if(y+1<4) map[x][y+1]=!map[x][y+1];}void dfs(int x,int y,int t){ if(panduan()) //每次搜索先判断是否为同一色,然后更新最小值 { if(ans>t) ans=t; return ; } if(x>=4||y>=4||x<0||y<0)return ; int nx,ny; nx=(x+1)%4; ny=y+(x+1)/4; dfs(nx,ny,t); fan(x,y); dfs(nx,ny,t+1); fan(x,y); return ;}int main(){ int i,j; for(i=0; i<4; i++) { scanf("%s",s); for(j=0; j<4; j++) { if(s[j]=='b') //将黑色初始为0 map[i][j]=0; else //白色初始1 map[i][j]=1; } } dfs(0,0,0); if(ans==999999)printf("Impossible\n"); else printf("%d\n",ans); return 0;}
阅读全文
0 0
- pojFilp Game2965 翻转棋子
- 棋子翻转
- 棋子翻转
- 棋子翻转
- 棋子翻转
- 棋子翻转
- 棋子翻转
- 棋子翻转
- 棋子翻转
- 美团 棋子翻转
- (牛客)棋子翻转
- [编程题] 棋子翻转
- 棋子翻转-java
- POJ 1753 翻转棋子
- c++-棋子翻转
- 校招真题 美团 棋子翻转
- 美团-棋子翻转-Java
- JAVA面试题:棋子翻转
- Css link与@import
- JavaScript中的Array类型
- 面试:对封装、继承、多态的理解。
- Atom常用插件的手动安装
- shell字符串的截取
- pojFilp Game2965 翻转棋子
- shell里if-then的使用
- 阅读TF_IDF代码
- 【STL】hdu 4585 Shaolin
- 【模板】【SPOJ375】树链剖分
- Android事件分发理解
- 【caffe】windows下caffe+vs2013+python2.7+cuda8.0+cmake3.8编译与配置
- Ubuntu 改变用户名和主机名
- 我需要学习的东西