AtCoder ABC周赛2023 12/10 (Sun) D题题解
目录
原题截图:
题目大意:
主要思路:
注:
代码:
原题截图:




题目大意:
给定两个 的矩阵
和
。
你每次可以交换矩阵 的相邻两行中的所有元素或是交换两列中的所有元素。
请问要使 变换至
至少需要几步操作?
如果无法变换至 ,则输出
-1。
主要思路:
这个题正解不好想,但我们看一下数据范围:H,W<=5。我们可以暴力bfs,但我们要枚举有效数组,所以用一个map记录,就做成了。
注:
不要再函数中开数组,用vector<vector<int>>。
代码:
#include<bits/stdc++.h>
using namespace std;
int n,m;
vector<vector<int>> a(10,vector<int>(10)),b(10,vector<int>(10));
bool equation(vector<vector<int>> a,vector<vector<int>> b)
{for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(a[i][j]!=b[i][j]){return 0;}}}return 1;
}
struct node{vector<vector<int>> x;int cnt;
};
map<vector<vector<int>>,bool> mp;
void bfs()
{queue<node> q;q.push({a,0});mp[a] = 1;while(!q.empty()){node tmp=q.front();q.pop();if(equation(tmp.x,b)){cout<<tmp.cnt;exit(0);}for(int i=1;i<n;i++){swap(tmp.x[i],tmp.x[i+1]);if(!mp.count(tmp.x)){q.push({tmp.x,tmp.cnt+1});mp[tmp.x] = 1; }swap(tmp.x[i],tmp.x[i+1]);}for(int i=1;i<m;i++){for(int j=1;j<=n;j++){swap(tmp.x[j][i],tmp.x[j][i+1]);}if(!mp.count(tmp.x)){q.push({tmp.x,tmp.cnt+1});mp[tmp.x] = 1; }for(int j=1;j<=n;j++){swap(tmp.x[j][i],tmp.x[j][i+1]);}}}
}
int main()
{cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>a[i][j];}}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>b[i][j];}}bfs();cout<<-1;return 0;
}
相关文章:
AtCoder ABC周赛2023 12/10 (Sun) D题题解
目录 原题截图: 题目大意: 主要思路: 注: 代码: 原题截图: 题目大意: 给定两个 的矩阵 和 。 你每次可以交换矩阵 的相邻两行中的所有元素或是交换两列中的所有元素。 请问要使 变换至…...
基于C/C++的rapidxml加载xml大文件 - 上部分翻译
RAPIDXML手册 版本 1.13 版权所有 (C) 2006, 2009 Marcin Kalicinski有关许可证信息,请参阅随附的文件许可证 .txt。 目录 1. 什么是 RapidXml? 1.1 依赖性和兼容性1.2 字符类型和编码1.3 错误处理1.4 内存分配1.5 …...
小程序使用Nodejs作为服务端,Nodejs与与MYSQL数据库相连
小程序使用Nodejs作为服务端,Nodejs与MYSQL数据库相连 一、搭建环境二、配置Nodejs三、与小程序交互四、跨域处理/报错处理五、nodejs连接mysql数据库六、微信小程序连接nodejs报错七、小程序成功与服务端相连,且能操作数据库一、搭建环境 新建空文件夹:Win + R进入cmd命令界…...
深度解读 Cascades 查询优化器
数据库中查询优化器是数据库的核心组件,其决定着 SQL 查询的性能。Cascades 优化器是 Goetz 在 volcano optimizer generator 的基础上优化之后诞生的一个搜索框架。 本期技术贴将带大家了解 Cascades 查询优化器。首先介绍 SQL 查询优化器,接着分析查询…...
Bash 操作审计和安全加固 —— 筑梦之路
bash 记录 配置环境变量:/etc/profile export HISTTIMEFORMAT"%F %T "export HISTORY_FILE/var/log/history/bash_history.logexport PROMPT_COMMAND{ thisHistIDhistory 1|awk "{print \\$1}";lastCommandhistory 1| awk "{\\$1\"…...
C/C++常见面试知识总结(三)
C语言是一种通用计算机(高级)编程语言;面向过程;广泛应用于计算机系统设计以及应用程序编写;设计目标,是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行…...
AR眼镜_AR智能眼镜整机硬件方案定制
AR眼镜的主要模块包括显示、光学模组、传感器和摄像头、主板、音频和网络连接等。其中,光学显示、主板处理器是决定AR眼镜成本的关键,光机占整体AR眼镜成本43%、处理器占整体成本31%。 AR眼镜的主板设计难点在于尺寸要足够小且要处理好散热问题。主板上的…...
2. 皇后的控制力
题目描述: 我们对八皇后问题进行扩展。 国际象棋中的皇后非常神勇,一个皇后可以控制横、竖、斜线等4个方向(或者说是8个方向),只要有棋子落入她的势力范围,则必死无疑,所以对方的每个棋子都要…...
南京邮电大学数据库实验二
1. 用create database命令创建电影数据库(MovieDB)。 create database MovieDB; 在创建表之前需调用一下指定的数据库: use MovieDB; 2.在电影数据库中用create table 命令创建如下5个关系模式: 创建movies表: create table Movies( ti…...
数据库 02-03 补充 SQL的子查询(where,from),子查询作为集合来比较some,exists,all(某一个,存在,所有)
子查询: where字句的子查询: 通常用in关键字: 举个例子: in关键字: not in 关键字: in 也可以用于枚举集合: where中可以用子查询来作为集合来筛选元祖。 some,all的运算符号…...
提升英语学习效率,尽在Eudic欧路词典 for Mac
Eudic欧路词典 for Mac是一款专为英语学习者打造的强大工具。无论您是初学者还是高级学习者,这款词典都能满足您的需求。 首先,Eudic欧路词典 for Mac具备丰富的词库,涵盖了各个领域的单词和释义。您可以轻松查询并学习单词的意思、用法和例…...
计算机网络英文总结
物理层 数据链路层 循环冗余校验(Cyclic Redundancy Check) 点对点协议PPP(Point-to-Point Protocol) 链路控制协议(Link Control Protocol) 网络控制协议(Network Control Protocol) 网络层(network layer) IP(Internet Protocol) 网际协议 ARP(Address…...
Spring上下文之注解模块ConfigurationMethod
博主介绍:✌全网粉丝5W+,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌ 博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+…...
【深度学习】强化学习(三)强化学习的目标函数
文章目录 一、强化学习问题1、交互的对象2、强化学习的基本要素3、策略(Policy)4、马尔可夫决策过程5、强化学习的目标函数1. 总回报(Return)2. 折扣回报(Discounted Return)a. 折扣率b. 折扣回报的定义 3.…...
Python高级算法——人工神经网络(Artificial Neural Network)
Python中的人工神经网络(Artificial Neural Network):深入学习与实践 人工神经网络是一种模拟生物神经网络结构和功能的计算模型,近年来在机器学习和深度学习领域取得了巨大成功。本文将深入讲解Python中的人工神经网络ÿ…...
深入理解JVM设计的精髓与独特之处
这是Java代码的执行过程 从软件工程的视角去深入拆解,无疑极具吸引力:首个阶段仅依赖于源高级语言的细微之处,而第二阶段则仅仅专注于目标机器语言的特质。 不可否认,在这两个编译阶段之间的衔接(具体指明中间处理步…...
fastjson序列化与反序列化的忽略
一.场景 做了一个基于springbootfastjson的小应用。A对象与B对象是OneToMany关系。A对象新增时也希望一起传递B的信息到后台进行Many端数据的新增。直接使用A对象来接收前台传递的信息,springboot会帮我们组装好对象。查询A对象时,又不希望其中的List<…...
【TB作品】基于单片机的实验室管理系统,STM32,GM65二维码扫描模块
硬件: (1)STM32F103C8T6最小板() (2)GM65二维码扫描模块 (3)DS1302实时时钟模块 (4)AT24C02 存储设备 (5)蜂鸣器 …...
超过 1450 个 pfSense 服务器因错误链而遭受 RCE 攻击
在线暴露的大约 1450 个 pfSense 实例容易受到命令注入和跨站点脚本漏洞的攻击,这些漏洞如果链接起来,可能使攻击者能够在设备上执行远程代码。 pfSense 是一款流行的开源防火墙和路由器软件,允许广泛的定制和部署灵活性。 它是一种经济高效…...
react面试总结2
redux中sages和thunk中间件的区别,优缺点 Redux 中的 redux-saga 和 redux-thunk 都是中间件,用于处理异步操作,但它们有一些区别。 Redux Thunk: 简单易用:redux-thunk 是比较简单直观的中间件,它允许 …...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
如何应对敏捷转型中的团队阻力
应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...
【深度学习新浪潮】什么是credit assignment problem?
Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...
大数据治理的常见方式
大数据治理的常见方式 大数据治理是确保数据质量、安全性和可用性的系统性方法,以下是几种常见的治理方式: 1. 数据质量管理 核心方法: 数据校验:建立数据校验规则(格式、范围、一致性等)数据清洗&…...
【iOS】 Block再学习
iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...
DeepSeek越强,Kimi越慌?
被DeepSeek吊打的Kimi,还有多少人在用? 去年,月之暗面创始人杨植麟别提有多风光了。90后清华学霸,国产大模型六小虎之一,手握十几亿美金的融资。旗下的AI助手Kimi烧钱如流水,单月光是投流就花费2个亿。 疯…...
32位寻址与64位寻址
32位寻址与64位寻址 32位寻址是什么? 32位寻址是指计算机的CPU、内存或总线系统使用32位二进制数来标识和访问内存中的存储单元(地址),其核心含义与能力如下: 1. 核心定义 地址位宽:CPU或内存控制器用32位…...
