3.26日总结

news2024/9/20 11:54:24

1.Fliptile

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

题意:在题目输入的矩阵,在这个矩阵的基础上,通过最少基础反转,可以将矩阵元素全部变为0,如果不能达到目标则输出"IMPOSSIBLE",达到目标则输出一个操作最少次数的矩阵。

思路:由于在同一个位置翻转两次的话,相当于没有翻转,所以每一个位置有且仅能最多翻转一次,想要将矩阵某个位置的1变为0,只能通过操作下一行同一列的位置,可以对第一行的元素按照要求翻转多次,次数为2^m(m为矩阵的列数),直到所有的情况都尝试过。

下面是AC代码:

#include<iostream>
#include<queue>
#include<cstring>
#include<string>
#include<map>
#include<set>
#include<vector>
using namespace std;


int mp[20][20];
int ans[20][20];
int temp_ans[20][20];
int temp[20][20];
int n,m;
int mi=123456789;

void fi(int x,int y)//翻转本身和相邻位置 
{
	temp[x][y]^=1;
	temp[x-1][y]^=1;
	temp[x+1][y]^=1;
	temp[x][y+1]^=1;
	temp[x][y-1]^=1;
}

bool isok()
{
	for(int i=0;i<m;i++){
		if(temp[n-1][i]) return 0;
	}	
	return 1;//判断翻转是否合理 
}

void solve()
{
	
	cin>>n>>m;
	
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++){
			cin>>mp[i][j];
		}
	}
	
	int k=(1<<m);
	int count=0;
	while(k--)
	{
		memset(temp_ans,0,sizeof(temp_ans));
		memcpy(temp,mp,sizeof(mp));
		int cnt=0;
		int dy=0;
		while((1<<dy)<=count)
		{
			if((1<<dy)&count)
			{
				cnt++; 
				temp_ans[0][dy]=1;//多次不同情况翻转第一行 
				fi(0,dy);
			}
			dy++;
		}
		count++;
		for(int i=0;i<n-1;i++){
			for(int j=0;j<m;j++){
				if(temp[i][j])
				{
					temp_ans[i+1][j]=1;//记录翻转位置 
					fi(i+1,j);//翻转下一个位置 
					cnt++;//记录翻转次数 
				}
			}
		}
		if(cnt<mi&&isok())//判断 
		{
			mi=cnt;//更新最优解 
			memcpy(ans,temp_ans,sizeof(temp_ans));
		}
	}
	if(mi>1234567)//代表没找到合理解 
	{
		cout<<"IMPOSSIBLE\n";
	}
	else//输出优解答案 
	{
		for(int i=0;i<n;i++){
			for(int j=0;j<m;j++){
				cout<<ans[i][j]<<" ";
			}
			cout<<"\n";
		}
	}
}
int main()
{
	int t;
	t=1;
	while(t--){
		solve();
	}
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1546520.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

dbgpt部署教程,纯小白教程

1.打开git下载zip文件 下载地址&#xff1a; GitHub - eosphoros-ai/DB-GPT at v0.5.0 2.容器部署 2.1 先启动python3.10环境 docker run -itd --name dbgpt1 --gpus all --shm-size"32g" -p 60035:5000 -p 60037:7860 -p 60038:8000 \ -v /home/tmn/OAPD/jiayq/…

住在我心里的猴子:焦虑那些事儿 - 三余书屋 3ysw.net

精读文稿 您好&#xff0c;本期我们解读的是《住在我心里的猴子》。这是一本由患有焦虑症的作家所著&#xff0c;关于焦虑症的书。不仅如此&#xff0c;作者的父母和哥哥也都有焦虑症&#xff0c;而作者的母亲后来还成为了治疗焦虑症的专家。这本书的中文版大约有11万字&#x…

鸿蒙 HarmonyOS应用开发之API:Context

Context 是应用中对象的上下文&#xff0c;其提供了应用的一些基础信息&#xff0c;例如resourceManager&#xff08;资源管理&#xff09;、applicationInfo&#xff08;当前应用信息&#xff09;、dir&#xff08;应用文件路径&#xff09;、area&#xff08;文件分区&#x…

Git基础(23):Git分支合并实战保姆式流程

文章目录 前言准备正常分支合并1. 创建两个不冲突分支2. 将dev合并到test 冲突分支合并1. 制造分支冲突2. 冲突合并 前言 Git分支合并操作 准备 这里先在Gitee创建了一个空仓库&#xff0c;方便远程查看内容。 正常分支合并 1. 创建两个不冲突分支 &#xff08;1&#xf…

淘宝app商品数据API接口|item_get_app-获得淘宝app商品详情原数据

获得淘宝app商品详情原数据 API返回值说明 item_get_app-获得淘宝app商品详情原数据 公共参数​​​​​​ 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地…

pta L1-082 种钻石

L1-082 种钻石 分数 5 全屏浏览 切换布局 作者 陈越 单位 浙江大学 2019年10月29日&#xff0c;中央电视台专题报道&#xff0c;中国科学院在培育钻石领域&#xff0c;取得科技突破。科学家们用金刚石的籽晶片作为种子&#xff0c;利用甲烷气体在能量作用下形成碳的等离子体…

网络层介绍,IP地址分类以及作用

IP地址组成&#xff1a; TTL&#xff1a;生存时间 基于ICMP报文 特殊地址&#xff1a; 0.0.0.0-0.255.255.255 1.代表未指定的地址 默认路由 DHCP下发地址的时候&#xff0c;发个报文给DHCP服务器 临时用0.0.0.0借用地址&#xff0c;未指定地址。 2.全网地址&#xff1a;目…

前端小白的学习之路(webpack)

提示&#xff1a;webpack简介&#xff0c;nvm,npm配置环境,常用命令&#xff0c;基本web项目构建 目录 webpack 1.配置环境 1)node.js node常用命令 2)nvm nvm常用命令&#xff1a; 3)npm npm常用命令 2.构建简易web项目 1)创建目录 2)安装webpack依赖 3)配置 webpac…

全面剖析Java多线程编程,抢红包、抽奖实战案例

黑马Java进阶教程&#xff0c;全面剖析Java多线程编程&#xff0c;含抢红包、抽奖实战案例 1.什么是多线程&#xff1f; 2.并发与并行 CPU有这些&#xff0c;4,8,16,32,64 表示能同时进行的线程 3.多线程的第一种实现方式 package com.itheima.reggie;/*** Author lpc* Date …

Linux 系统 docker快速搭建PHP环境

PHP安装 ############################################################################# 1、直接拉取官方镜像 查找Docker Hub上的php镜像 docker search php 直接拉取官方镜像 docker run --name myphp --restartalways --network lnmp -d php:7.1-fpm 2、创建php容…

PyTorch----torch.nn.Linear()函数

torch.nn.Linear是PyTorch中的一个模块&#xff0c;用于在神经网络中实现完全连接层。它表示输入张量的一个线性变换通过将它与一个权矩阵相乘并加上一个偏置项。 下面是torch.nn.Linear的语法: torch.nn.Linear(in_features, out_features, biasTrue)参数&#xff1a; in_f…

CKS之镜像漏洞扫描工具:Trivy

目录 Trivy介绍 Trivy安装 Trivy使用命令 容器镜像扫描 打印指定&#xff08;高危、严重&#xff09;漏洞信息 JSON格式输出 HTML格式输出 离线扫描命令 离线更新Trivy数据库 Harbor安装Trivy Trivy介绍 Trivy是一款用于扫描容器镜像、文件系统、Git仓库等的漏洞扫描…

html列表标签错误问题

答案如下 问题&#xff1a;少了/符号&#xff0c;要对应上。 <i>咖啡</i> 解决之后的图片 答案如图所示

SD卡备份ubuntu镜像

设备及系统&#xff1a;nuc幻影峡谷工控机&#xff0c;ubuntu20.04 一、确定SD卡设备号的两种方法 方法1&#xff1a; 将有ubuntu镜像的SD卡插入读卡器&#xff0c;再将读卡器插入电脑主机&#xff0c;在 工具 中打开 磁盘&#xff0c;查看SD卡设备号&#xff0c;如下图所示…

2024年最新阿里云服务器价格表_CPU内存+磁盘+带宽价格

2024年阿里云服务器租用费用&#xff0c;云服务器ECS经济型e实例2核2G、3M固定带宽99元一年&#xff0c;轻量应用服务器2核2G3M带宽轻量服务器一年61元&#xff0c;ECS u1服务器2核4G5M固定带宽199元一年&#xff0c;2核4G4M带宽轻量服务器一年165元12个月&#xff0c;2核4G服务…

情感视频素材免费下载无水印,分享几个抖音热门情感视频素材网站

在当今这个短视频内容为王的时代&#xff0c;情感短视频无疑成为了最直接、最有效的情感传达方式之一。无论是用来表达生活点滴&#xff0c;还是用于品牌故事的讲述&#xff0c;一段精心制作的视频能够让人触动心弦&#xff0c;留下深刻印象。但是&#xff0c;优秀的情感视频素…

动听的洗牌游戏(Java篇ArrayList实操)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…

【网安小白成长之路】1.PHP基本语法

&#x1f42e;博主syst1m 带你 acquire knowledge&#xff01; ✨博客首页——syst1m的博客&#x1f498; &#x1f51e; 《网安小白成长之路(我要变成大佬&#x1f60e;&#xff01;&#xff01;)》真实小白学习历程&#xff0c;手把手带你一起从入门到入狱&#x1f6ad; &…

醉龙酿掀起“酱香热”,醇厚酱香源自匠心坚守

醉龙酿掀起“酱香热”&#xff0c;醇厚酱香源自匠心坚守 作为世界酱香型白酒的发源地和主产区&#xff0c;茅台镇凭借优越的生态环境、独特的酿酒工艺以及悠久的酒文化历史&#xff0c;在中国白酒领域独树一帜。近年来&#xff0c;茅台酱香型白酒的热度持续升温&#xff0c;也…

【Entity Framework】 EF三种开发模式

【Entity Framework】 EF三种开发模式 文章目录 【Entity Framework】 EF三种开发模式一、概述二、DataBase First2.1 DataBase First简介2.2 DataBase First应用步骤2.3 DataBase First总结 三、Model First3.1 Model First简介3.2 Model First实现步骤 四、Code First4.1 Cod…