POJ 1753(枚举)
来源:互联网 发布:windows pe是w10吗 编辑:程序博客网 时间:2024/06/03 09:29
题意:
在一个4*4的表格中,每个格子都有一个黑色或者白色的棋子,一共十六个,游戏规则就是,可以随意的改变任意一个棋子的颜色,白色变成黑色,或者黑色变成白色,同时这个棋子的四周也要进行反转.问,经过最少几次可以变成全白或者全黑,如果不存在,则输出Implossible
分析:
看到题目不要一来就想什么简单,取巧的方法,应该从一些简单的解法想起.这个题就是,每个格子都有两种情况,反转和不反转,直接枚举就好了.就是2的16次方.具体的就是,每个格子反转一次就检查一下是否满足了题意,知道最后一个,如果都没有的话,则说明不存在,直接输出Impossible.唯一有点难度的就是dfs,其实会的人就很简单的,就是一个递归.最重要的还是思考问题的方向和方式.对了,还有一种位运算,没有怎么研究,位运算效率更高.
代码:
#include <iostream>#include <cstring>#include <cmath>using namespace std;int ans=35;bool map[6][6];//判断整个矩阵的颜色是不是全部为黑,或者全部为红bool judge(){ for(int i=0;i<4;i++) for(int j=0;j<4;j++) if(map[i][j]!=map[0][0]) return false; return true;}//对于选中的四周进行反转void flip(int n){ int i=n/4;//行 int j=n%4;//列 map[i][j]=!map[i][j]; if(i-1>=0){ map[i-1][j]=!map[i-1][j]; } if(i+1<=3){ map[i+1][j]=!map[i+1][j]; } if(j-1>=0){ map[i][j-1]=!map[i][j-1]; } if(j+1<=3){ map[i][j+1]=!map[i][j+1]; }}//用dfs遍历全部格子void dfs(int n,int a){ if(judge()) { if(ans>a) ans=a; return ; } if(n>=16) return ; dfs(n+1,a); flip(n); dfs(n+1,a+1); flip(n);}int main(){ char c; for(int i=0;i<4;i++) for(int j=0;j<4;j++) { cin>>c; if(c=='b') map[i][j]=false; else map[i][j]=true; } dfs(0,0); if(ans!=35){ cout<< ans <<endl; } else{ cout<<"Impossible"<<endl; } return 0;}
阅读全文
0 0
- POJ 1753 枚举
- poj 1753 枚举+深搜
- poj 1753 flip[ 枚举 ]
- POJ 1753 枚举
- poj 1753 枚举
- POJ 1753 递归枚举
- POJ 1753(枚举)
- POJ-1753(递归枚举)
- POJ 1753 dfs+枚举
- poj 1753 枚举+dfs
- POJ 1753 Flip Game 枚举
- POJ 1753 枚举二进制+BFS
- POJ 1753 Flip Game (枚举)
- poj 1753 枚举加dfs
- POJ 1753 Flip Game 枚举
- poj 1753Flip Game---枚举
- POJ 1753 Flip Game【枚举】
- POJ 1753 Flip Game (枚举)
- 不创建临时变量,交换两个变量的值
- 数据结构之kd树
- UDT源码剖析(三):UDT::startup()过程代码注释
- 第三章 表达式和运算符笔记摘要
- jsp页面中的java代码(jsp表达式、jsp小脚本、jsp声明)
- POJ 1753(枚举)
- LeetCode#116. Populating Next Right Pointers in Each Node
- 《Advanced Bash-scripting Guide》学习(十):利用whois查询域名信息
- php && 和 and || 和or 区别
- 在C++test中做Qt单元测试
- C++/C 学习Note
- ArcGIS10:ArcGIS version not specified. You must call RuntimeManager.Bind before creating any ArcGIS
- Linux CentOS查看版本的命令
- 干货集中营 API 文档