【搜索】Fliptile
- #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的更多相关文章
- kuangbin专题 专题一 简单搜索 Fliptile POJ - 3279
题目链接:https://vjudge.net/problem/POJ-3279 题意:格子有两面,1表示黑色格子,0表示白色格子,奶牛每次可以踩一个格子,踩到的格子和它周围的上下左右格子都会翻面,也 ...
- POJ.3279 Fliptile (搜索+二进制枚举+开关问题)
POJ.3279 Fliptile (搜索+二进制枚举+开关问题) 题意分析 题意大概就是给出一个map,由01组成,每次可以选取按其中某一个位置,按此位置之后,此位置及其直接相连(上下左右)的位置( ...
- poj 3279 Fliptile (简单搜索)
Fliptile Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 16558 Accepted: 6056 Descrip ...
- POJ3279 Fliptile 枚举+简单搜索
题意:一个矩阵,每个点1或0,然后每次翻一个点,它周围上下左右(包括自己)1->0,0->1,问最少翻几次可以矩阵全是0,忽略题目说的字典序 分析:枚举第一行所有的情况,然后下面几行也随之 ...
- poj 3279 Fliptile(二进制搜索)
Farmer John knows that an intellectually satisfied cow is a happy cow who will give more milk. He ha ...
- POJ 3279 Fliptile (二进制+搜索)
[题目链接]click here~~ [题目大意]: 农夫约翰知道聪明的牛产奶多. 于是为了提高牛的智商他准备了例如以下游戏. 有一个M×N 的格子,每一个格子能够翻转正反面,它们一面是黑色,还有一面 ...
- 【BZOJ 1647】[Usaco2007 Open]Fliptile 翻格子游戏 模拟、搜索
第一步我们发现对于每一个格子,我们只有翻和不翻两种状态,我们发现一旦确定了第一行操作,那么第二行的操作也就随之确定了,因为第一行操作之后我们要想得到答案就得把第一行全部为0,那么第二行的每一个格子的操 ...
- [kuangbin带你飞]专题一 简单搜索 - D - Fliptile
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> us ...
- POJ 3279(Fliptile)题解
以防万一,题目原文和链接均附在文末.那么先是题目分析: [一句话题意] 给定长宽的黑白棋棋盘摆满棋子,每次操作可以反转一个位置和其上下左右共五个位置的棋子的颜色,求要使用最少翻转次数将所有棋子反转为黑 ...
随机推荐
- modal template
<div class="modal fade" id="tmp_order_modal" tabindex="-1" role=&qu ...
- oracle wm_concat() 返回空
参考 https://www.cnblogs.com/zengweiming/archive/2013/11/20/3433642.html select wm_concat(to_char(str) ...
- php苹果内购订单验证
/** * 21000 App Store不能读取你提供的JSON对象 * 21002 receipt-data域的数据有问题 * 21003 receipt无法通过验证 * 21004 提供的sha ...
- vue使用全局element-ui组件
安装loader模块: cnpm install style-loader -D cnpm install css-loader -D cnpm install file-loader -D 安装 ...
- 1、str.join() 2、fromkeys() 3、深浅拷贝 4、set()
1. 补充基础数据类型的相关知识点 1. str. join() 把列表变成字符串 2. 列表不能再循环的时候删除. 因为索引会跟着改变 3. 字典也不能直接循环删除. 把要删除的内容记录在列表中. ...
- FZU-1752.(A^B mod C)(快速幂与快速乘优化)
我把自己演哭了... 心酸.jpg 写了很多个版本的,包括数学公式暴力,快速幂TLE等等,最后想到了优化快速幂里的乘法,因为会爆longlong,但是和别人优化的效率简直是千差万别...? 本题大意: ...
- oracle视图(转)
视图的概念 视图是基于一张表或多张表或另外一个视图的逻辑表.视图不同于表,视图本身不包含任何数据.表是实际独立存在的实体,是用于存储数据的基本结构.而视图只是一种定义,对应一个查询语句.视图的数据 ...
- ES3之cookie
一 cookie的作用域由文档源(domain)和文档路径(path)决定. 当前页面的脚本只能操作:当前源的当前路径的cookie.当前源的父路径的cookie. 向服务器发送请求时,请求头(Req ...
- [剑指Offer]34-二叉树中和为某一值的路径
题目链接 https://www.nowcoder.com/practice/b736e784e3e34731af99065031301bca?tpId=13&tqId=11177&t ...
- echarts横向柱状图如果想打开网址
代码: var data = eval(data); var xList = new Array(); var yList = new Array(); var urlList = new Array ...