Kong Ming Qi hdu7321

news2024/11/23 7:41:59

Problem - 7321

题目大意:在(n+2)*(m+2)的棋盘上,中间摆满了n*m个棋子,每个棋子可以向上下左右四个方向移动,对于相邻的三格,移动前后分别为 有 有 无->无 无 有,问最后棋盘上最少能剩下几个棋子

1<=n,m<=65

思路:我们首先要将棋盘从复杂变简单,也就是要在棋盘基本形状不变的情况下,缩减它的行列数

从上图中可以发现,我们可以将一个3*2的棋盘利用左边一列的空间,将其缩减为3*1的,扩展来说,任意3*n的棋盘,n都可以被减小到我们想要的数,但只有3还不够,我们还需要研究2*n的棋盘如何缩减,因为2x+3y才可以等于任意整数

 

从上图可以发现,对于一个2*4的棋盘,我们可以借助上面一行,将其缩减为2*1,因此对于任意n>=4,我们都可以将2*n的棋盘缩减成2*我们想要的数。然后又可知,当棋盘只有一行或一列时,棋子只能剩下n*m/2个,这是很大的情况,我们不想要,所以我们要尽量把棋盘缩减到2*2,所以我们先将n,m>=5的部分,一直-3,直到<5,然后继续讨论剩下的情况当n=4,m=4时,此时比较特殊,我们有方法可以把棋子减到1个:

令n>=m,n=4,m=3时,我们可以将它缩减成2*3,然后只能剩下2个,n=4,m=2,我们将它缩减成1*2,剩下1个,n=3,m=3/2,和4*3同理,n=2,m=2时,可以只剩下一个,所有情况就都讨论完毕了

#include<__msvc_all_public_headers.hpp>
//#include<bits/stdc++.h>
using namespace std;
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int t;
	cin >> t;
	while (t--)
	{
		int n, m;
		cin >> n >> m;
		if (n < m)
			swap(n, m);	
		if (m == 1)
		{
			cout << (n - 1) / 2 + 1 << endl;
			continue;
		}
		while (n >= 5)
		{
			n -= 3;
		}
		while (m >= 5)
		{
			m -= 3;
		}			
		if (n < m)
			swap(n, m);
		if (n == 4 && m == 4)
		{
			cout << 1 << endl;
		}
		else if (n == 4 && m == 3)
		{
			cout << 2 << endl;
		}
		else if (n == 4 && m == 2)
		{
			cout << 1 << endl;
		}
		else if (n == 3 && m == 3)
		{
			cout << 2 << endl;
		}
		else if (n == 3 && m == 2)
		{
			cout << 2 << endl;
		}
		else if (n == 2 && m == 2)
		{
			cout << 1 << endl;
		}
	}
}

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

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

相关文章

论文解读|PF-Net:用于 3D 点云补全的点分形网络

原创 | 文 BFT机器人 01 背景 从激光雷达等设备中获取的点云往往有所缺失&#xff08;反光、遮挡等&#xff09;&#xff0c;这给点云的后续处理带来了一定的困难&#xff0c;也凸显出点云补全作为点云预处理方法的重要性。 点云补全&#xff08;Point Cloud Completion&#x…

Drools用户手册翻译——第四章 Drools规则引擎(七)规则执行模式和线程安全

甩锅声明&#xff1a;本人英语一般&#xff0c;翻译只是为了做个笔记&#xff0c;所以有翻译错误的地方&#xff0c;错就错了&#xff0c;如果你想给我纠正&#xff0c;就给我留言&#xff0c;我会改过来&#xff0c;如果懒得理我&#xff0c;就直接划过即可。 drools的规则执…

HighTec 工程属性介绍2

目录 首先需要创建或导入一个工程&#xff0c;如下图&#xff1a; 有两种方式可以进入工程的属性面板&#xff1a; 选中工程&#xff0c;右键点击 Properies . 选中工程&#xff0c;按键 Alt Enter. 进入工程属性面板之后&#xff0c;左侧是书签标记&#xff0c;右侧是该书…

How to choose WIFI7 IPQ9554- WIFI6 IPQ8072? Who has the better performance?

How to choose WIFI7 IPQ9554- WIFI6 IPQ8072? Who has the better performance? The Wi-Fi standard is Wi-Fi 6, also known as 802.11ax. Wi-Fi 6 brings significant speed, capacity and performance improvements over the previous Wi-Fi 5 (802.11ac) standard. It p…

如何做好项目管理?年薪百万项目大佬一直在用这11张图!

日常工作中&#xff0c;我们会遇到各种大大小小的工作项目&#xff0c;如何能让项目保质保量的完成&#xff0c;就需要项目管理。项目管理是什么&#xff1f;一句话解释&#xff1a;在有限的时间内&#xff0c;在约束的范围中&#xff0c;集合有限资源来完成项目目标。 本周小编…

如何安装mmcv?官网解答

pip install -U openmim mim install mmcv

什么是宏变量和宏替换?

在Java中&#xff0c;宏变量和宏替换通常是与C/C预处理器相关的概念&#xff0c;而不是Java本身的特性。在Java中&#xff0c;我们通常不使用预处理器指令(例如宏定义)来进行代码替换。Java使用的编译器并不支持预处理器指令&#xff0c;因此没有宏替换的概念。 然而&#xff0…

移动硬盘文件或目录损坏且无法读取

早上插上硬盘&#xff0c;拔的时候不太规范&#xff0c;再插进去就显示无法读取了 搜了很多方法&#xff0c;很多让使用什么软件进行恢复 还参考了这个方法&#xff0c;但是我的属性打开跟博主的完全不一样 最后&#xff0c;参考移动硬盘“文件或目录损坏&#xff0c;无法读取…

[NOIP2007 普及组] 守望者的逃离

[NOIP2007 普及组] 守望者的逃离 题目背景 恶魔猎手尤迪安野心勃勃&#xff0c;他背叛了暗夜精灵&#xff0c;率领深藏在海底的娜迦族企图叛变。 题目描述 守望者在与尤迪安的交锋中遭遇了围杀&#xff0c;被困在一个荒芜的大岛上。 为了杀死守望者&#xff0c;尤迪安开始…

把一个列表拆成N个子列表的四种方法

编程的方法往往不止一种&#xff0c;比如怎么把一个Python种的列表拆成N个子列表&#xff0c;我们可以很容易找到N种方法&#xff0c;也许这就是编程的魅力所在。 一、列表表达式法 这种方法最为简洁&#xff0c;不过可读性差一些 这个方法中&#xff0c;即使原始列表的数量无…

途乐证券:美联储第11次加息 年内降息预期下降

7月26日&#xff0c;美国联邦储藏委员会主席鲍威尔在华盛顿到会记者会。新华社发 当地时刻7月26日&#xff0c;美国联邦储藏委员会一如预期加息25个基点。商场对美联储未来是否会持续加息尚未彻底构成共识&#xff0c;但对年内美联储将敞开降息周期的预期下降。 抑通胀 美联储…

24考研数据结构-队列2

目录 数据结构之队列&#xff1a;链式存储结构与循环队列链式存储结构链式队列的结构链式队列的操作 循环队列循环队列的结构循环队列的操作 链式队列与循环队列的比较结论3.2.3 队列的链式存储结构3.2.3.1定义3.2.3.2链式队列的基本操作——带头结点3.2.3.3 不带头结点的相关操…

PLC自学是否可行?

plc编程的关键是模拟原操作流程&#xff0c;通过运行程序完成控制过程。所以核心内容就是程序对流程的描述。因此&#xff0c;掌握PLC编程语言和基本功能实现是很有必要的。 PLC语言分为梯形图、语句和功能图。常用梯形图&#xff0c;适合基本逻辑描述&#xff0c;语句表适合数…

计算机网络(1) --- 网络介绍

目录 1.介绍协议 基础知识 协议 协议分层 OSI七层模型 2.TCP/IP五层模型 3.网络传输的基本流程 1.基本知识 协议报头 2.局域网通信的基本流程 3.网络传输流程 局域网分类 跨路由器传输 数据包封装和分用 4.网络中的地址管理 1.IP地址 2.MAC地址 3.区别 1.介绍…

商品分类子类新建,手机云进销存,扫码入库出库盘点开单打印

商品分类子类新建&#xff0c;手机扫码开单打印进销存&#xff0c;商贸批发生产企业仓库条码管理软件系统&#xff0c;超市便利店五金茶叶烟酒鞋帽门店零售手机收银管理软件APP_哔哩哔哩_bilibili商品分类子类新建的操作步骤。, 视频播放量 1、弹幕量 0、点赞数 0、投硬币枚数 …

Java基础---final 关键字

目录 定义&#xff1a; 用途&#xff1a; 使用注意事项&#xff1a; final 变量 final 方法 final 类 小结 定义&#xff1a; Java中&#xff0c;final 表示最终&#xff0c;也可以称为完结器&#xff0c;表示对象是最终形态的&#xff0c;不可改变的意思 用途&#xff…

springboot+mybatis多数据源的事务问题

1.springbootmybatis实现多数据源后&#xff0c;针对单个数据源我们可以使用Transactional(name"xxxTransactionManager") 来指定使用的事务管理器&#xff0c;但是如果被注解的方法需要同时支持两个事务管理器呢&#xff0c;这个时候如果用Transactional注解就不 …

设备数字化平台在制药行业数字化转型的思考与实践

近年来&#xff0c;全球制药行业正面临着数字化转型的浪潮。制药4.0的概念正引领着工业物联网、机器人流程自动化和人工智能等先进技术在制药行业的广泛应用。然而&#xff0c;尽管数字化转型在许多行业已经取得了巨大成功&#xff0c;制药行业仍然面临一些挑战。数据孤岛、人才…

git撤销上一次的commit

一行命令 git reset --soft HEAD^如果在vscode上面&#xff0c;就可以

路灯防雷测试标准方案

路灯作为城市照明的重要组成部分&#xff0c;不仅影响着城市的美观和安全&#xff0c;也涉及到城市的节能和环保。因此&#xff0c;路灯的质量和性能是非常重要的。而路灯由于其安装位置和工作环境的特殊性&#xff0c;很容易受到雷击的影响&#xff0c;导致路灯的损坏或故障。…