#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. linux 后台运行命令

    command & 关闭终端,程序会终止 nohup command & 关闭终端,程序不会终止

  2. wordpress smtp发送邮件

    准备工作   进入qq邮箱 点击设置 邮箱设置 账户选项 下拉 找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务  开启 点击开启后发送短信内容 配置邮件客户端 到 ...

  3. C# 写App.config配置文件的方法

    private static void AccessAppSettings() { //获取Configuration对象 Configuration config = ConfigurationMa ...

  4. Forms.WebBrowser与Controls.WebBrowser区别

    Forms.WebBrowser与Controls.WebBrowser区别 Forms.WebBrowser有ScrollBarsEnabled 属性,即窗口滚动条,可以设置为false即可: Co ...

  5. java面试题:Linux

    Q:Linux怎么查端口?端口被占用怎么办? netstat -ntulp | grep 2181//查看2181端口号 netstat -pan | grep 2181 //查看2181端口号 如下 ...

  6. 安装python3 及virtual与virtualenvwrapper

    安装python3 下载python源码包 网址:https://www.python.org/downloads/release/python-362/ 下载地址:https://www.pytho ...

  7. SSRF攻击-运用gopher协议构造POST包--emmmm(http://10.112.68.215:10004/index.php?action=login)

        还是天枢的一道CTF题,启程!       分析题目,自己注册账户并登陆后,提示输入一个url,网站会自己运行查找网页信息.     emmmmm,很挑衅,网站就当作服务器,我们在url框中输 ...

  8. Codeforces Beta Round #57 (Div. 2)

    Codeforces Beta Round #57 (Div. 2) http://codeforces.com/contest/61 A #include<bits/stdc++.h> ...

  9. html5文件读取+按钮样式重置+文件内容预览

    FileReader读取文件详细介绍请访问:http://www.cnblogs.com/xyyt/p/9066882.html FileReader提供了如下方法: readAsArrayBuffe ...

  10. vue使用日期时间插件layDate

    项目中需要用到日期时间插件,尝试用bootstrap.element的时间插件都各有各的报错,对于一个菜鸟来说真的是很痛苦啊.终于,最后用了layDate实现了需要的功能 最终效果: 使用步骤: 1. ...