POJ 3279 Fliptile

【代码超详解】POJ 3279 Fliptile(开关问题,DFS) 一、题目描述 Fliptile Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 25691 Accepted: 9099 Description Farmer John knows that an intellectually satisfied cow is a happy cow who will give more m... 阅读详情

Fliptile

https://vjudge.net/problem/POJ-3279
Farmer John knows that an intellectually satisfied cow is a happy cow who will give more milk. He has arranged a brainy activity for cows in which they manipulate an M × N grid (1 ≤ M ≤ 15; 1 ≤ N ≤ 15) of square tiles, each of which is colored black on one side and white on the other side.

As one would guess, when a single white tile is flipped, it changes to black; when a single black tile is flipped, it changes to white. The cows are rewarded when they flip the tiles so that each tile has the white side face up. However, the cows have rather large hooves and when they try to flip a certain tile, they also flip all the adjacent tiles (tiles that share a full edge with the flipped tile). Since the flips are tiring, the cows want to minimize the number of flips they have to make.

Help the cows determine the minimum number of flips required, and the locations to flip to achieve that minimum. If there are multiple ways to achieve the task with the minimum amount of flips, return the one with the least lexicographical ordering in the output when considered as a string. If the task is impossible, print one line with the word “IMPOSSIBLE”.

Input

Line 1: Two space-separated integers: M and N
Lines 2… M+1: Line i+1 describes the colors (left to right) of row i of the grid with N space-separated integers which are 1 for black and 0 for white

Output

Lines 1… M: Each line contains N space-separated integers, each specifying how many times to flip that particular location.

Sample Input

4 4
1 0 0 1
0 1 1 0
0 1 1 0
1 0 0 1

Sample Output

0 0 0 0
1 0 0 1
1 0 0 1
0 0 0 0

C++

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

using namespace std;

int n, m;
int maze[20][20], tmp[20][20], cnt[20][20], ans[20][20];
int dir[5][2] = {0,1,1,0,0,0,0,-1,-1,0};
const int INF = 0x3f3f3f3f;
int minn = INF;
bool flag = false;

void flip(int a[][20], int x, int y)
{
	for(int i = 0; i < 5; i ++){
		int tx = x + dir[i][0];
		int ty = y + dir[i][1];
		if(tx >= 0 && tx < n && ty >= 0 && ty < m)
		{
			a[tx][ty] = 1 - a[tx][ty];
		}		
	}
}

int check()
{
	int t = 0;
	for(int i = 1; i < n; i ++){
		for(int j = 0; j < m; j ++){
			if(tmp[i - 1][j]){
				flip(tmp, i, j);
				cnt[i][j] = 1;
			}
			else cnt[i][j] = 0;
		}
	}
	for(int i = 0; i < m; i ++){
		if(tmp[n - 1][i]) return INF;
	}
	for(int i = 0; i < n; i ++){
		for(int j = 0; j < m; j ++){
			if(cnt[i][j]) t ++;
		}
	}
	return t;
}

void dfs(int col){
	if(col == m){
		for(int i = 0; i < n; i ++)
			for(int j = 0; j < m; j ++)
				tmp[i][j] = maze[i][j];
		int t = check();
		if(t < minn){
			minn = t;
			flag = true;
			for(int i = 0; i < n; i ++)
				for(int j = 0; j < m; j ++)
					ans[i][j] = cnt[i][j];
		}
		return;
	}
	dfs(col + 1);	
	flip(maze, 0, col);
	cnt[0][col] = 1;
	dfs(col + 1);
	flip(maze, 0, col);
	cnt[0][col] = 0; 
}

int main()
{
	scanf("%d%d", &n, &m);
	for(int i = 0; i < n; i ++){
		for(int j = 0; j < m; j ++){
			scanf("%d", &maze[i][j]);
		}
	}
	dfs(0);
	if(flag){
		for(int i = 0; i < n; i ++){
			for(int j = 0; j < m - 1; j ++){
				printf("%d ", ans[i][j]);
			}
			printf("%d\n", ans[i][m - 1]);
		}
	}
	else printf("IMPOSSIBLE\n");
	return 0;
}
PyTorch复现EEG-TCNet踩坑记:从BCI IV2a数据到TCN块缺失的完整解决方案 本文详细解析了使用PyTorch复现EEG-TCNet模型的全过程,重点解决了BCI IV2a数据集预处理和TCN模块缺失的技术难题。通过标准化数据流程、跨受试者验证策略以及三种因果卷积实现方案,为运动想象分类任务提供完整解决方案,帮助研究者高效实现模型复现与优化。 阅读详情

相关推荐

SAP FICO 资产会计AA后台配置 (上)

输入折旧表“CZ11”如有外币计价的资产,则需指定外币计价的资产折旧范围,以及规则。因为在设置资产类型时,需指定一个对应的 资产编号范围、资产账户确定类型(便于分配自动会计科目)、屏幕格式规则(便于设置资产字段必填与否)。因为在设置资产类型时,需指定一个对应的 资产编号范围、资产账户确定类型(便于分配自动会计科目)、屏幕格式规则(便于设置资产字段必填与否)。新增资产类型:Z101 固定资产-房屋及建筑物新增资产类型:Z301 固定资产-房屋及建筑物。

ghgxm520的博客 1762

Fliptile(状态压缩/枚举)

3279 – Fliptile (poj.org)Farmer John knows that an intellectually satisfied cow is a happy cow who will give more milk. He has arranged a brainy activity for cows in which they manipulate an M × N grid (1 ≤ M ≤ 15; 1 ≤ N ≤ 15) of square tiles, each of whic

Crushlikearush的博客 316

致远OA系统表单相关操作记录(一)

致远OA系统表单相关操作

weixin_59666050的博客 6102

题解:POJ 3279 Fliptile (BFS)

D - Fliptile Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d &%I64u Description Farmer John knows that an intellectually satisfied cow is a happy cow who will gi

sun897949163的博客 1553

ComfyUI 本地部署指南:概念、部署过程、生成图片、共享 WebUI 模型

ComfyUI 是一个基于节点的 Stable Diffusion 图形化用户界面。您可以通过将不同的节点连接在一起来构建生成图像的工作流程。一些常用的节点包括加载检查点模型(Load Checkpoint)、输入提示词(CLIP Text Encode)、指定采样器(KSampler)等。ComfyUI 将工作流程分解为可重新排列的元素,以便您可以轻松创建自己的元素。

水滴的博客 5032

【SAP HANA 46】关于HANA CPU高峰到 80-100%

关于HANA CPU高峰到 80-100%

探索 Java 编程的技巧、最佳实践和解决方案。本博客提供针对 Java 开发者的实用指南,涵盖从基础到高级话题,旨在提升编程效率和技能。 428

[kuangbin]专题一 简单搜索 Fliptile POJ - 3279【DFS】

【题目描述】 Farmer John knows that an intellectually satisfied cow is a happy cow who will give more milk. He has arranged a brainy activity for cows in which they manipulate an M × N grid (1 ≤ M ≤ 15; 1 ≤...

inv0ker的博客 305

ardupilot开发 --- Remote ID 篇

适配ardupilot的Remote ID模块研发,远程标识模块研发。Remote ID模块可以通过蓝牙或wifi向外广播无人机的状态信息、位置信息、任务信息等,并可以通过蜂窝数据向国家无人驾驶航空器一体化综合监管服务平台上报这些信息。Remote ID功能是21年起国家出台的民用无人机适航飞行的基本要求!

记录老板的每次pua,分享领导每天的毒鸡汤... 9607

BZOJ1647: [Usaco2007 Open]Fliptile 翻格子游戏 Dfs

1647: [Usaco2007 Open]Fliptile 翻格子游戏 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 566  Solved: 228 [Submit][Status][Discuss] Description Farmer John knows that an intellectually satisfi

Oakley 1255

[xboard-ok210] 44 s5pv210开发板介绍和对比

文章目录前言四大S3C6410提供商友坚开发板UT-S5PV210华天正(润尔)real210飞凌开发板ok210九鼎x210友善之臂开发板tiny210mini210smart210天嵌开发板tq210sate210xboardxboardxboard之ok210 前言 四大S3C6410提供商 友坚开发板 UT-S5PV210 华天正(润尔) real210 飞凌开发板 ok210 九鼎 x210 友善之臂开发板 tiny210 mini210 smart210 天嵌开发板 tq210 sate210

鹰之翔 286

Linux系统故障排查思路实践教程(上)

本文主要介绍了Linux系统日志分析与常见故障排查的实用方法。首先从系统日志的分类及其涉及的日志文件进行说明;其次详细讲解了忘记用户密码的解决方案;接着对系统无法启动问题,提供了异常断电后修复文件系统、/etc/fstab文件丢失恢复等常见故障的处理方案。最后介绍了文件系统只读错误的排查思路和修复方法,包括磁盘空间检查、文件系统修复等实用技巧。全文提供了大量具体命令和操作流程,为Linux系统维护人员提供了实用的故障处理指南。

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 328

Fliptile 开关问题 poj 3279

Fliptile Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 4031 Accepted: 1539 Description Farmer John knows that an intellectually satisfied cow is a happy ...

weixin_33863087的博客 222

【数据集】CMIP6气候模式数据下载

简介CMIP6及其气候模式数据下载

WW、forever的博客 9353

POJ-3279-Fliptile【状态压缩】【DFS】【好题】

POJ-3279-Fliptile

Linoy 3658

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【回炉重造】POJ-3279.Fliptile 题解

【回炉重造】POJ-3279.Fliptile 题解 我好弱,记录一个想了两天也想不到的暴力 题目链接:POJ-3279.Fliptile 明白题意只想看看代码的同学建议直接跳到这里:正常代码 题目 题意 解题思路 代码分块解析 主函数 after_flip() 函数 - 返回上一行的翻转结果 end_line_all_zero() 函数 - 返回最后一行是否全0 变量很长的代码 正常代码 题目 题意 给你一个0、1组成的表,翻转一个方块,可以把它本身和上下左右5个方块都从0变1、从1变0 要求

qq_37504214的博客 703

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

POJ - 3279 Fliptile

** POJ 3279 Fliptile ** Language: Fliptile Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 25673 Accepted: 9093 Description Farmer John knows that an intellectually satisfied cow ...

weixin_45539557的博客 256

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

POJ3279 Fliptile

POJ3279 Fliptile (一个需要小技巧的爆搜题) 思路:通过观察可以发现,当我们确定了第一行各个位置翻或不翻后,在处理第二行时,第二行每个位置翻或不翻应该是固定的,因为若想使第一行全变白,有且仅有第二行可以做到。以此类推,除第一行外,其余每行翻或不翻都是确定的。我们仅需暴力枚举第一行每个位置是否翻,然后处理其余每行。 需要注意的是:在我们处理完m-1行后,需扫一遍最后一行是否已全变为白色,若是,则可用于更新答案。 题目还要求该答案的字典序最小,我们可发现一种方案只与第一行有关,所以在dfs枚举第

m0_50647144的博客 165

poj3279Fliptile

poj3279Fliptile 题目大意及理解 大意就是心情愉悦能让奶牛产更多的奶,所以农民搞了个游戏给奶牛玩,奶牛 需要把所有黑色朝上的格子变成白色(1代表黑色,0代表白色),因为奶牛的 力气比较大,所以在翻动某一个格子时会同时翻转这个格子的邻接格子(上,下 左, 右)问怎样翻动可以使奶牛所需翻动次数最少,把每个格子的翻动次数以 矩阵的形式输出(只输出最少的)。如果全白时做不到的,输出IMPOSSIBLE M-行数,N-列数 因为当第一行的翻动次数确定了,第一行的颜色也就确定了,所以第二行只需要 翻动本

weixin_49165728的博客 279

poj_3279 Fliptile

题目链接:poj_3279 Fliptile 题目大意: 01矩阵,改变其中一个,周围上下左右都改变(0->1 ,1->0),目的是让这个矩阵全都变为0 求解改变次数最小的那个,如果最小次数有多种情况,输出字典序列最小的情况 解题思路: 从第一行开始枚举,直到最后一行 如果最后一行不全为0,那么就无解 代码如下: 状态压缩 + DFS #include<iostream> #include<cstring> #include<queue> usin

chstor's blog 173

poj3279 Fliptile

原题链接:poj3279 Fliptile 题意:可以看作一个M*N的棋盘,棋盘中布满黑白色的棋子,黑色翻转后是白色,白色反转是黑色,每步操作翻转一个棋子,并且其上下左右也都跟着翻转。 求:尽可能少的步数把所有的棋子翻成白色,最小步数有多个时,输出字典序最小的一组,无解时输出IMPOSSIBLE 输入:M N  棋子颜色(0代表白色,1代表黑色) 输出:每个棋子对应的最小步数 #in

anchorite 1265

POJ 3279 Fliptile【状态压缩+DFS】

POJ 3279 Fliptile 【状态压缩+DFS】 题目大意: 有一个 M * N 的格子,每个格子可以翻转正反面,它们有一面是黑色,另一面是白色。黑色翻转之后变成白色,白色翻转之后则变成黑色。 任务就是把所有的格子翻转为白色。不过每次翻转一个格子,与它上下左右相邻接的格子也会被翻转。 若存在解,输出最小的翻转次数时,每个格子的翻转次数。有多个解时,输出字典序最小的一组;否认输出IMPOSS...

指弹键盘哼民谣 1103

POJ 3279 Fliptile(翻格子)

POJ3279 Fliptile(翻格子) TimeLimit:2000MSMemoryLimit:65536K Description- 题目描述 Farmer John knows that an intellectually satisfied cow is a happy cow who will give more milk. H...

198

(枚举+状压)POJ3279Fliptile

POJ3279Fliptile 题意&思路: 有一个m*n的01矩阵,每次选一个格子会翻转这个格子和他的上下左右。问是否能将所有的格子变成0,能就输出翻转次数最小的方案(有多个即输出字典序最小的),0表示不反转,1表示翻转。如果没有输出“IMPOSSIBLE"。 这是kuangbin的搜索题单里的一道题,之前一直没有思路。看了其他人的题解,其实就是枚举状态,然后可以发现如果(i-1,j)点...

Z7784562的博客 240

【POJ 3279 --- Fliptile】全排列+搜索

【POJ 3279 --- Fliptile】全排列+搜索 题目来源:点击进入【POJ 3279 — Fliptile】 Description Farmer John knows that an intellectually satisfied cow is a happy cow who will give more milk. He has arranged a brainy activit...

来日浅谈的博客 415
上一篇: POJ 3278 Catch That Cow
下一篇: POJ 1426 Find The Multiple
剑气扬名
博客等级 码龄7年 24粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值