1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5. const int maxn=;
  6. const int inf=;
  7. typedef long long ll;
  8. int m,n;
  9. int opt[maxn][maxn];
  10. int a[maxn][maxn];
  11. int tmp[maxn][maxn];
  12. int dx[]= {,,,-,};
  13. int dy[]= {-,,,,};
  14. int getcolor(int x,int y)
  15. {
  16. int ans=a[x][y];
  17. for(int i=; i<; i++)
  18. {
  19. int xx=x+dx[i];
  20. int yy=y+dy[i];
  21. if(xx>=&&xx<m&&yy>=&&yy<n)
  22. ans+=tmp[xx][yy];
  23. }
  24. return ans%;
  25. }
  26.  
  27. int cal()
  28. {
  29. int i,j;
  30. for(i=; i<m; i++)
  31. for(j=; j<n; j++)
  32. if(getcolor(i-,j))
  33. tmp[i][j]=;
  34.  
  35. for(i=;i<n;i++)
  36. if(getcolor(m-,i))return -;
  37.  
  38. int ans=;
  39. for(i=;i<m;i++)
  40. for(j=;j<n;j++)
  41. ans+=tmp[i][j];
  42. return ans;
  43. }
  44.  
  45. void solve()
  46. {
  47. int rec=-;
  48. int i,j;
  49. for(i=;i<<<n;i++)
  50. {
  51. memset(tmp,,sizeof(tmp));
  52. for(j=;j<n;j++)
  53. {
  54. tmp[][n-j-]=i>>j&;
  55. }
  56. int num=cal();
  57. if(num>=&&(rec>num||rec<))
  58. {
  59. rec=num;
  60. memcpy(opt,tmp,sizeof(tmp));
  61. }
  62. }
  63. if(rec<)
  64. printf("IMPOSSIBLE\n");
  65. else
  66. {
  67. for(i=;i<m;i++)
  68. {
  69. for(j=;j<n;j++)
  70. printf("%d%c",opt[i][j],j==n?'\n':' ');
  71. printf("\n");
  72. }
  73.  
  74. }
  75. }
  76.  
  77. int main()
  78. {
  79. int i,j,t,k;
  80. while(~scanf("%d%d",&m,&n))
  81. {
  82. for(i=; i<m; i++)
  83. for(j=; j<n; j++)
  84. scanf("%c",&a[i][j]);
  85. solve();
  86. }
  87. return ;
  88. }

【搜索】Fliptile的更多相关文章

  1. kuangbin专题 专题一 简单搜索 Fliptile POJ - 3279

    题目链接:https://vjudge.net/problem/POJ-3279 题意:格子有两面,1表示黑色格子,0表示白色格子,奶牛每次可以踩一个格子,踩到的格子和它周围的上下左右格子都会翻面,也 ...

  2. POJ.3279 Fliptile (搜索+二进制枚举+开关问题)

    POJ.3279 Fliptile (搜索+二进制枚举+开关问题) 题意分析 题意大概就是给出一个map,由01组成,每次可以选取按其中某一个位置,按此位置之后,此位置及其直接相连(上下左右)的位置( ...

  3. poj 3279 Fliptile (简单搜索)

    Fliptile Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 16558   Accepted: 6056 Descrip ...

  4. POJ3279 Fliptile 枚举+简单搜索

    题意:一个矩阵,每个点1或0,然后每次翻一个点,它周围上下左右(包括自己)1->0,0->1,问最少翻几次可以矩阵全是0,忽略题目说的字典序 分析:枚举第一行所有的情况,然后下面几行也随之 ...

  5. poj 3279 Fliptile(二进制搜索)

    Farmer John knows that an intellectually satisfied cow is a happy cow who will give more milk. He ha ...

  6. POJ 3279 Fliptile (二进制+搜索)

    [题目链接]click here~~ [题目大意]: 农夫约翰知道聪明的牛产奶多. 于是为了提高牛的智商他准备了例如以下游戏. 有一个M×N 的格子,每一个格子能够翻转正反面,它们一面是黑色,还有一面 ...

  7. 【BZOJ 1647】[Usaco2007 Open]Fliptile 翻格子游戏 模拟、搜索

    第一步我们发现对于每一个格子,我们只有翻和不翻两种状态,我们发现一旦确定了第一行操作,那么第二行的操作也就随之确定了,因为第一行操作之后我们要想得到答案就得把第一行全部为0,那么第二行的每一个格子的操 ...

  8. [kuangbin带你飞]专题一 简单搜索 - D - Fliptile

    #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> us ...

  9. POJ 3279(Fliptile)题解

    以防万一,题目原文和链接均附在文末.那么先是题目分析: [一句话题意] 给定长宽的黑白棋棋盘摆满棋子,每次操作可以反转一个位置和其上下左右共五个位置的棋子的颜色,求要使用最少翻转次数将所有棋子反转为黑 ...

随机推荐

  1. modal template

    <div class="modal fade" id="tmp_order_modal" tabindex="-1" role=&qu ...

  2. oracle wm_concat() 返回空

    参考 https://www.cnblogs.com/zengweiming/archive/2013/11/20/3433642.html select wm_concat(to_char(str) ...

  3. php苹果内购订单验证

    /** * 21000 App Store不能读取你提供的JSON对象 * 21002 receipt-data域的数据有问题 * 21003 receipt无法通过验证 * 21004 提供的sha ...

  4. vue使用全局element-ui组件

    安装loader模块: cnpm install style-loader -D cnpm install css-loader -D cnpm install file-loader -D   安装 ...

  5. 1、str.join() 2、fromkeys() 3、深浅拷贝 4、set()

    1. 补充基础数据类型的相关知识点 1. str. join() 把列表变成字符串 2. 列表不能再循环的时候删除. 因为索引会跟着改变 3. 字典也不能直接循环删除. 把要删除的内容记录在列表中. ...

  6. FZU-1752.(A^B mod C)(快速幂与快速乘优化)

    我把自己演哭了... 心酸.jpg 写了很多个版本的,包括数学公式暴力,快速幂TLE等等,最后想到了优化快速幂里的乘法,因为会爆longlong,但是和别人优化的效率简直是千差万别...? 本题大意: ...

  7. oracle视图(转)

    视图的概念   视图是基于一张表或多张表或另外一个视图的逻辑表.视图不同于表,视图本身不包含任何数据.表是实际独立存在的实体,是用于存储数据的基本结构.而视图只是一种定义,对应一个查询语句.视图的数据 ...

  8. ES3之cookie

    一 cookie的作用域由文档源(domain)和文档路径(path)决定. 当前页面的脚本只能操作:当前源的当前路径的cookie.当前源的父路径的cookie. 向服务器发送请求时,请求头(Req ...

  9. [剑指Offer]34-二叉树中和为某一值的路径

    题目链接 https://www.nowcoder.com/practice/b736e784e3e34731af99065031301bca?tpId=13&tqId=11177&t ...

  10. echarts横向柱状图如果想打开网址

    代码: var data = eval(data); var xList = new Array(); var yList = new Array(); var urlList = new Array ...