2017-10-5

解答

与开灯问题类似.从上向下看,第一行的只与本行以及下一行有关,搜索可缩小至2的N次方

代码

#include<iostream>
using namespace std;const int N = 4;
char x[N+1][N+1],y[N+1][N+1];
int z[N+1];void set(int i,int j){if (x[i][j]=='b') x[i][j]='w';else x[i][j]='b';if (x[i][j-1]=='b') x[i][j-1]='w';else x[i][j-1]='b';if (x[i][j+1]=='b') x[i][j+1]='w';else x[i][j+1]='b';if (x[i-1][j]=='b') x[i-1][j]='w';else x[i-1][j]='b';if (x[i+1][j]=='b') x[i+1][j]='w';else x[i+1][j]='b';
}int color(char c){int i,j,s=0;for (j=1;j<=N;j++){if (z[j]==1){set(1,j);s=s+1;}}for (i=2;i<=N;i++){for (j=1;j<=N;j++){if (x[i-1][j]==c){set(i,j);s=s+1;}}}for (j=1;j<=N;j++){if (x[N][j]==c) return N*N+1;}return s;
}void init(){int i,j;for (i=1;i<=N;i++){for (j=1;j<=N;j++){x[i][j]=y[i][j];}}
}int main(){int i,j;for (i=1;i<=N;i++){for (j=1;j<=N;j++){cin>>x[i][j];y[i][j]=x[i][j];}}int res=N*N+1;for (z[1]=0;z[1]<=1;z[1]++){for (z[2]=0;z[2]<=1;z[2]++){for (z[3]=0;z[3]<=1;z[3]++){for (z[4]=0;z[4]<=1;z[4]++){init();res=min(color('b'),res);init();res=min(color('w'),res);}}}}if (res==N*N+1) cout<<"Impossible"<<endl;else cout<<res<<endl;return 0;
}

poj1753 Flip Game相关推荐

  1. poj1753 Flip Game(枚举Enum+dfs)

    转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents 题目链接:http://poj.org/problem?id=1753 ------ ...

  2. POJ1753 Flip Game

    题目链接:http://poj.org/problem?id=1753 大致题意:翻转游戏在一个长方形的4x4场地上进行,在其16个方格中分别放置双面棋子.每个棋子的一面是白色,另一面是黑色,每个都是 ...

  3. POJ-1753 Flip Game 枚举 状态压缩

    刚开始做这题时总是在想应该用何种的策略来进行翻装,最后还是没有想出来--- 这题过的代码的思路是用在考虑到每个点被翻装的次数只有0次或者是1次,所以对于16个点就只有2^16中请况了.再运用位运算将状 ...

  4. POJ1753 Flip Game题解

    题目大意: 在一个4*4的方格中有16个双面棋子他们分别是黑面和白面,我们可以选择任意一颗棋子进行翻转,翻转后其上下左右的棋子也会被翻转,要求我们对棋子进行翻转求出棋子全部翻为黑色或者全部翻为白色的最 ...

  5. POJ1753 flip Game翻转棋盘

    /*题目大意:有一个4*4的方格,每个方格中放一粒棋子,这个棋子一面是白色,一面是黑色. 游戏规则为每次任选16颗中的一颗,把选中的这颗以及它四周的棋子一并反过来,当所有的棋子都是同一个颜色朝上时, ...

  6. NC106350 POJ1753 Flip Game 翻转游戏

    网上上课写的题目  POJ传送们http://poj.org/problem?id=1753 先贴代码,感觉里面重点部分说的已经比较清楚了 #include <iostream> #inc ...

  7. ACM题集以及各种总结大全(转)

    ACM题集以及各种总结大全! 虽然退役了,但是整理一下,供小弟小妹们以后切题方便一些,但由于近来考试太多,顾退役总结延迟一段时间再写!先写一下各种分类和题集,欢迎各位大牛路过指正. 一.ACM入门 关 ...

  8. poj2965 The Pilots Brothers' refrigerator

    //题意:同样给你一个4*4的矩阵,但每一个点代表一个开关,开关可开可闭,只有开关全部打开时才有用,你每一次打开或者关闭一个开关会导致与他相同的行的开关以及与他同列的开关反转,问最少多少次可全部打开并 ...

  9. POJ-2965 The Pilots Brothers' refrigerator

    The Pilots Brothers' refrigerator Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 27917 A ...

最新文章

  1. 最锋利的Visual Studio Web开发工具扩展:Web Essentials详解
  2. Weblogic部署项目过程中的一些问题
  3. 数字签名时间戳服务器的原理
  4. 详述白盒测试逻辑覆盖法的语句覆盖及其缺点
  5. 关于【AC自动姬】的学习
  6. 使用spring session+redis技术,解决负载均衡下的session共享问题
  7. 如何使用 python glob model
  8. Linux平台搭建Discuz
  9. TypeScript入门学习笔记
  10. iis6.0渗透实战笔记
  11. HTML页面基本结构介绍
  12. 警示灯emark认证需要什么条件?
  13. js去掉url中的域名
  14. 这些是 Python 官方推荐的最好书籍(推荐)
  15. 仿真中的连续系统和离散系统
  16. Linux 驱动开发 四十四:platform 设备驱动实验(二)
  17. 中山大学计算机在职研究生分数线,中山大学在职研究生复试分数线详情
  18. console的常用方法
  19. 百度php主动推送每天,百度主动推送(实时)制作 简单3步轻松完成
  20. js 针对异步的处理

热门文章

  1. 高德地图安卓 拖拽选点_行车记录仪当“眼睛” 高德地图手机AR导航再次升级...
  2. 精选| 2021年5月R新包推荐(第54期)
  3. 使用ComplexHeatmap绘制3D热图
  4. Mac计算器的计算过程怎么看?教你一键查看运算记录!
  5. MacOSX系统怎么开启Root账户?Mac电脑开启root权限教程
  6. Big Sur更新下载过慢?亲测!满速下载macOS原版系统
  7. python会内存泄漏吗_Python内存泄漏和内存溢出的解决方法
  8. Python笔记-相关性分析(连续变量和分类变量)
  9. Java笔记-JdbcTemplate批量执行insert及update
  10. MySQL-线上删除表流程