#include<stdio.h>
#include<stdlib.h>
#include<string.h> const int maxn=;
const int inf=;
typedef long long ll;
int m,n;
int opt[maxn][maxn];
int a[maxn][maxn];
int tmp[maxn][maxn];
int dx[]= {,,,-,};
int dy[]= {-,,,,};
int getcolor(int x,int y)
{
int ans=a[x][y];
for(int i=; i<; i++)
{
int xx=x+dx[i];
int yy=y+dy[i];
if(xx>=&&xx<m&&yy>=&&yy<n)
ans+=tmp[xx][yy];
}
return ans%;
} int cal()
{
int i,j;
for(i=; i<m; i++)
for(j=; j<n; j++)
if(getcolor(i-,j))
tmp[i][j]=; for(i=;i<n;i++)
if(getcolor(m-,i))return -; int ans=;
for(i=;i<m;i++)
for(j=;j<n;j++)
ans+=tmp[i][j];
return ans;
} void solve()
{
int rec=-;
int i,j;
for(i=;i<<<n;i++)
{
memset(tmp,,sizeof(tmp));
for(j=;j<n;j++)
{
tmp[][n-j-]=i>>j&;
}
int num=cal();
if(num>=&&(rec>num||rec<))
{
rec=num;
memcpy(opt,tmp,sizeof(tmp));
}
}
if(rec<)
printf("IMPOSSIBLE\n");
else
{
for(i=;i<m;i++)
{
for(j=;j<n;j++)
printf("%d%c",opt[i][j],j==n?'\n':' ');
printf("\n");
} }
} int main()
{
int i,j,t,k;
while(~scanf("%d%d",&m,&n))
{
for(i=; i<m; i++)
for(j=; j<n; j++)
scanf("%c",&a[i][j]);
solve();
}
return ;
}

【搜索】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. Spring mvc接收中文参数值乱码(tomcat配置问题)

    问题| 使用java写的接口,中文参数乱码   问题分析| 请求方打印参数日志,中文无问题,tomcat中日志显示接收的参数乱码   实际是tomcat配置问题   解决方法| 在tomcat的配置文 ...

  2. 581. Shortest Unsorted Continuous Subarray

      Given an integer array, you need to find one continuous subarray that if you only sort this subarr ...

  3. PHPActiveRecord 学习一

    #连接数据库 <?phprequire_once dirname(__FILE__) . '/../../ActiveRecord.php'; // initialize ActiveRecor ...

  4. Android创建和删除桌面快捷方式

    有同学方反馈创建快捷方式后,点击快捷方式后不能启动程序或者提示"未安装程序",貌似是新的rom在快捷方式这块做过修改(由于此文是11年5月所出,估计应该是2.0或2.1的rom), ...

  5. dedecms(织梦系统)如何更新手机版首页模板文件

    https://jingyan.baidu.com/article/ad310e80e4b1dd1849f49e8f.html

  6. 165. Compare Version Numbers (String)

    Compare two version numbers version1 and version2. If version1 > version2 return 1, if version1 & ...

  7. 【Android端 adb相关】adb相关总结

    一.什么是adb? adb的全称是:Android Debug Bridge,adb命令的构成是三部分,分别是:服务器.客户端.后台程序: (1)客户端:一个在PC上运行的客户端.可以通过shell端 ...

  8. SA9 collections

    [定义]  表示object的集合 generic class:可以用于多种object, 抽象类的具体实现: [ArrayList] 动态添加,只能加Non-primitive type,要初始化长 ...

  9. Aria2GUI 导出下载 刷新界面,任务消失

    问题1. 2.勾选之后 导出下载 没了,神烦 解决方法解决方法1.点击分享, 2.创建链接 3.然后复制链接到网站,  下面是 下载 工具和 谷歌插件http://www.sdifen.com/ari ...

  10. 【linux】下Apache无法启动(8080端口被占用)

    Linux下8080端口被占用,apache无法启动. 打开终端输入netstat -lnp|grep 8080 发现竟然是tcp6 占用里,因此ipv6启用占用了端口. 1.打开/etc/sysct ...