POJ 1753
来源:互联网 发布:网络语言单词词缀 编辑:程序博客网 时间:2024/05/18 00:05
题意 最少需要变几步能让所有格子都是黑色或者白色,当一个格子变化时它的上下左右都会变化
只有16个格子 直接暴搜
每个格子最多变一次 变两次的效果相当于不变 先变后变没影响
#include<cstdio>using namespace std;#define MAX 90000000#define M 10#define TO 16const int B=0,W=1;int ans;int n[M];char temp[M][M];int a[M][M];int nx[]={0,1,0,0,-1};int ny[]={0,0,1,-1,0};void read(){int i,j;n[B]=n[W]=0;for(i=0;i<4;i++){scanf("%s",temp[i]);for(j=0;j<4;j++){if(temp[i][j]=='b'){a[i][j]=B;n[B]++;}else{a[i][j]=W;n[W]++;}}}}void add(int i,int j){int k;for(k=0;k<5;k++){ int x=i+nx[k]; int y=j+ny[k];if(x>=0&&x<4&&y>=0&&y<4){n[a[x][y]]--;a[x][y]=1-a[x][y];n[a[x][y]]++;}}}void fun(int num,int total){if(num==16){if(n[B]==16||n[W]==16){if(total<ans){ans=total;}}return ;}fun(num+1,total);add(num/4,num%4);fun(num+1,total+1);add(num/4,num%4);}int main(){read();ans=MAX;fun(0,0);if(ans<MAX){printf("%d\n",ans);}else{printf("Impossible\n");}return 0;}
- poj 3279 poj 1753
- POJ 1753
- poj&&1753
- poj 1753
- poj 1753
- POJ-1753
- poj-1753
- poj 1753
- poj 1753
- poj 1753
- POJ 1753
- POJ 1753
- poj 1753
- poj-1753
- POJ 1753
- POJ 1753
- POJ 1753
- poj 1753
- chromium 构建系统分析
- 根据前序遍历和中序遍历结果构造二叉树
- mini2440的串口在Qt上实现
- 禁闭岛》剧情全解,结局只有一个,导演小细节处...
- android openGL ES 01
- POJ 1753
- hdu2426Interesting Housing Problem
- ATL Internals 2ed复习.chapter 4.Creators
- Netbeans JVM设置
- 硬盘管理工具Acronis Disk Director Suite 10.0使用方法(图文介绍)
- 几种选择全排列实现的效率
- 中小型嵌入式系统开发常用开源资源导航
- 【动态规划】武器分配
- 笔记本外接显示器,同时使用双显示器