[kuangbin带你飞]专题一 简单搜索 - D - Fliptile
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int x, y;
bool g[][];
bool k[][];
bool ans[][];
bool flag;
int d[][] = {{,-},{,},{-,},{,},{,}};
bool judge(int cur)
{
for(int i = ; i <= x; i++)
for(int j = ; j <= y; j++)
{
k[i][j] = g[i][j];
}
for(int j = ; j < y; j++)
{
k[][j+] = (cur>>j)%;
} for(int i = ; i <= x; i++)
for(int j = ; j <= y; j++)
{
if(k[i-][j] == false) continue;
ans[i][j] = true;
for(int z = ; z <= ; z++)
{
k[i+d[z][]][j+d[z][]] = !k[i+d[z][]][j+d[z][]];
}
} for(int j = ; j <= y; j++)
{
if(k[x][j]) return false;
}
return true;
}
int main()
{
// freopen("in.in","r",stdin);
while(scanf("%d%d",&x,&y)!=EOF)
{
flag = false;
for(int i = ; i <= x; i++)
for(int j = ; j <= y; j++)
{
scanf("%d",&g[i][j]);
}
for(int i = ; i < (<<y); i++)
{
memset(ans,,sizeof(ans)); if(judge(i))
{
flag = true;
break;
} }
if(flag)
{
for(int i = ; i <= x; i++)
{
cout<<ans[i][];
for(int j = ; j <= y; j++)
{
cout<<" "<<ans[i][j];
}
printf("\n");
}
}
else printf("IMPOSSIBLE\n");
} return ;
}
[kuangbin带你飞]专题一 简单搜索 - D - Fliptile的更多相关文章
- [kuangbin带你飞]专题一 简单搜索 题解报告
又重头开始刷kuangbin,有些题用了和以前不一样的思路解决.全部题解如下 点击每道题的标题即可跳转至VJ题目页面. A-棋盘问题 棋子不能摆在相同行和相同列,所以我们可以依此枚举每一行,然后标记每 ...
- [kuangbin带你飞]专题一 简单搜索(回顾)
A - 棋盘问题 POJ - 1321 注意条件:不能每放一个棋子,就标记一行和一列,我们直接枚举每一行就可以了. AC代码: #include<iostream> #include< ...
- [kuangbin带你飞]专题一 简单搜索 - E - Find The Multiple
//Memory Time //2236K 32MS #include<iostream> using namespace std; ]; //保存每次mod n的余数 //由于198的余 ...
- [kuangbin带你飞]专题一 简单搜索 棋盘问题
题来:链接https://vjudge.net/problem/OpenJ_Bailian-132 J - 棋盘问题 1.题目: 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别. ...
- [kuangbin带你飞]专题一 简单搜索
ID Origin Title 454 / 1008 Problem A POJ 1321 棋盘问题 328 / 854 Problem B POJ 2251 Dungeon Ma ...
- [kuangbin带你飞]专题一 简单搜索 回顾总结
第二题:bfs,忘了将queue清空. 第三题:bfs,记得使用vis数组,防止重复入队
- 迷宫问题 POJ - 3984 [kuangbin带你飞]专题一 简单搜索
定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, ...
- [kuangbin带你飞]专题一 简单搜索 Find a way HDU - 2612
Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Ningbo one year ...
- Catch That Cow POJ - 3278 [kuangbin带你飞]专题一 简单搜索
Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. ...
随机推荐
- nodejs 模板引擎ejs的简单使用(3)
1.ejs <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <tit ...
- lombok @Builder实现原理
public class Person { private Person(Builder builder) { name = builder.name; age = builder.age; } pr ...
- leetcood学习笔记-141-环形列表
题目描述: 方法一: class Solution(object): def hasCycle(self, head): """ :type head: ListNode ...
- 清除浏览器默认样式——css reset & normalize.css
css reset 自己挨个清除很麻烦 可以使用网上一些css库——css reset 把模板复制到css文件最上方,其他的样式我们自己编写来覆盖它们 但是这个也有一些弊端,会把一些本来需要的样式给清 ...
- NX二次开发-UFUN获取图纸视图最大边界和视图中心点UF_DRAW_ask_view_borders
NX9+VS2012 //获得视图的最大边界 ]; UF_DRAW_ask_view_borders(view_tag[j], view_borders); //获得视图原点 ]; ViewOrigi ...
- Wannafly挑战赛21-A-灯塔-内含正确的凸包模版
(有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 目录 目录 题意:传送门 思路: AC代码: 题意:传送门 题目描述 Z市是一座港口城市,来来往往的船只依靠灯塔指引方向. 在海平面上 ...
- python入门 集合(四)
集合 集合是一个无序的不重复元素序列,可以迭代,也可以修改.集合迭代的时候元素是随机的. 集合通常用来 membership testing, 去重, 也可以用来求交集并集补集. 介绍一下如何创建集合 ...
- 1、linux常用命令的英文单词缩写
1.linux常用命令的英文单词缩写 命令缩写: ls:list(列出目录内容) cd:Change Directory(改变目录) su:switch user 切换用户 rpm:redhat pa ...
- Spring源码由浅入深系列六 CreateBean过程
- 剑指offer——28对称的二叉树
题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 题解: 使用正常前序遍历与反向的前序遍历进行比较结果即可,注意,需将空 ...