第十三届蓝桥杯省赛 JAVA A组 - 矩形拼接

news2024/12/27 4:10:12

✍个人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343
📚专栏地址:蓝桥杯题解集合
📝原题地址:付账问题
📣专栏定位:为想参加蓝桥别的小伙伴整理常考算法题解,祝大家都能取得理想成绩!
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪

问题描述

已知 3 个矩形的大小依次是a1×b1,a2×b2,a3×b3。用这3个矩形能拼出的所有多边形中,边数最少可以是多少?

输入格式

T 组测试,每个测试给出 6 个数据,表示 3 个矩阵。

输出格式

输出 T 行,每行一个整数,表示最少边数。

数据范围

1 ≤ T ≤ 1000,1 ≤ a1, b1, a2, b2, a3, b3 ≤ 100。

输入样例:

2
3 2 4 1 2 4
3 2 3 1 1 1

输出样例:

4
6

思路

这道题虽然是 JAVA 组的题目,但我们仍然可以尝试用 C++ 来做,为了更快理解题意,我们模拟一下题目样例:

样例 1 给定的三个矩阵 A、B、C 的长宽分别为 3 和 2、4 和 1、2 和 4,故可以得到最优解 4,如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h6LHMLJa-1674001723952)(AcWing 蓝桥杯辅导.assets/2-3.png)]

样例 2 给定的三个矩阵 A、B、C 的长宽分别为 3 和 2、3 和 1、1 和 1,故可以得到最优解 6,如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l6R7jGqE-1674001723956)(AcWing 蓝桥杯辅导.assets/2-4.png)]

因此,我们通过画图可以发现,三个矩阵拼在一起无非就只有三种答案:

  • 三个矩阵都不匹配:8 边型
  • 三个矩阵能完全匹配成一个新的矩形:4 边型
  • 其余情况:6 边型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hMMR4iT8-1674001723967)(AcWing 蓝桥杯辅导.assets/2-5.png)]

又因为本题一共就三个矩形,进行任意组合就只有 2 × 3 = 6 种情况,再加上对每个矩形的长宽进行枚举也就 6 × 2 × 2 × 2 共 48 种情况,不会超时,故可以直接 6 重循环进行暴力枚举。

代码

#include<bits/stdc++.h>
using namespace std;
int a[3][2];
int main()
{
	int T;
	cin >> T;
	while (T--)
	{
		//输入三个矩形的长和宽
		for (int i = 0; i < 3; i++)
			cin >> a[i][0] >> a[i][1];
		int ans = 8;	//完全不匹配时的答案为8
		for (int i = 0; i < 3; i++)	//枚举第一个矩形
			for (int j = 0; j < 3; j++)
				if (i != j)	//枚举第二个矩形
					for (int k = 0; k < 3; k++)
						if (i != k && j != k)	//枚举第三个矩形
							for (int ii = 0; ii <= 1; ii++)			//枚举第一个矩形的长宽
								for (int jj = 0; jj <= 1; jj++)		//枚举第二个矩形的长宽
									for (int kk = 0; kk <= 1; kk++)	//枚举第三个矩形的长宽
									{
										//第一个矩形的长等于后两个矩形的长之和
										if (a[i][ii] == a[j][jj] + a[k][kk])
										{
											ans = min(ans, 6);
											//后面两个矩形的宽相等
											if (a[j][1 - jj] == a[k][1 - kk])
												ans = min(ans, 4);
										}
										//至少有一个矩形的长和第一个矩形的长相等
										if (a[i][ii] == a[j][jj] || a[i][ii] == a[k][kk])
											ans = min(ans, 6);
										//三个矩形的长全部相等
										if (a[i][ii] == a[j][jj] && a[i][ii] == a[k][kk])
											ans = min(ans, 4);
									}
		cout << ans << endl;
	}
	return 0;
}

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

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

相关文章

Python学习中的六个技巧小结

1. 引言 “Beautiful is better than ugly.” 上述为著名的The Zen of Python的第一句话&#xff0c;也是有追求的python开发人员的信条之一。 所以我们的问题来了&#xff1a; 如何编写漂亮的Python代码? 本文重点通过九个示例向大家展示Python中的六个小技巧&#xff0c;以帮…

java后端-servlet超详细入门

java后端介绍今天我正式开始了一个新话题&#xff0c;那就是 Web。目前我主要会介绍后端。作为后端的老大哥 java&#xff0c;也有很多后端框架&#xff0c;比如大家耳熟能详的 spring 等。今天来带大家入门 servlet&#xff0c;不管是学生&#xff0c;刚毕业或是已经工作自学编…

【倍增】魔力小球

今天最后一篇&#xff0c;该睡了&#xff0c;怕猝死QwQ学校OJ上的一道模板题&#xff0c;去年不会做&#xff0c;今年还是不会做嘻嘻&#xff0c;还好最后调出来了&#xff0c;错的原因竟然是题目有歧义这个小球i的i是他喵的小球编号&#xff0c;不是id&#xff01;出题人是懂出…

Win11的两个实用技巧系列之电脑system占用高的解决办法

Win11 system占用cpu过高是什么原因? Win11电脑system占用高的解决办法Win11 system占用cpu过高是什么原因&#xff1f;Win11系统遇到system占用cpu很高&#xff0c;该怎么解决呢&#xff1f;下面我们就来看看Win11电脑system占用高的解决办法System占用cpu过高导致电脑卡顿&a…

2023年中职网络安全技能竞赛网页渗透(注入版)

竞赛任务书内容 (一)拓扑图 网页渗透 任务环境说明: 服务器场景:Server2121 服务器场景操作系统:未知(封闭靶机) 用户名:未知 密码:未知 1.访问服务器网站目录1,根据页面信息完成条件,将获取到的flag提交; 2.访问服务器网站目录2,根据页面信息完成条件,将获…

学生写字台灯用什么牌子的好?高品质学生台灯品牌推荐

学生写字台灯&#xff0c;很明显就是为学生而设计的&#xff0c;针对学生长时间学习&#xff0c;用眼强度大的特点&#xff0c;这种学生台灯在设计上对灯光的亮度、样式、护眼技术都是很有讲究的&#xff0c;为的就是保护学生眼睛&#xff0c;在一定程度上缓解眼部疲劳的作用。…

进程概念理解

既然要了解计算机的进程&#xff0c;那么就需要先了解一下计算机的底层结构 目录 冯洛伊曼体系结构 操作系统 系统调用接口 进程 PCB task_struct 内容 操作系统如何组织进程 冯洛伊曼体系结构 想了解计算机的底层结构&#xff0c;那么必定绕不开冯洛伊曼体系结构&…

19/365 java 多线程

1. 基础概念 程序&#xff1a;指令集和数据的集合。&#xff08;静态&#xff09; 进程&#xff1a;对程序的一次执行。&#xff08;动态&#xff09; 对同一个程序&#xff0c;执行两次&#xff0c;那就是两个进程。 进程是系统资源分配的基本单位 线程&#xff1a;一个进程…

gma 1.1.2 (2023.01.14) 更新日志(重大更新:开始支持空间绘图)

重大更新&#xff1a;从本版本开始&#xff0c; gma 逐步 支持空间绘图功能&#xff08;依赖 matplotlib&#xff09;&#xff01; 获取 gma 1.1.2 1、百度网盘&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1eT2rJRiUDJuJkWeLJNL-cw?pwdb07n 提取码&#xff1a;b…

基于SIMULINK的动力电池CAN通信仿真教程

在真实的整车开发过程中&#xff0c;整车厂一般会先设计出整车网络架构&#xff0c;并依据此架构及ECU之间的功能交互设计网络总线数据库&#xff08;Database&#xff09;, 作为重要的技术文档&#xff0c;可以根据需 要全部或部分地公开给各个ECU供应商。也存在一些特殊情况&…

【渗透测试】web端姿势-前端利用

目录 前端 存在问题 关于密码重置 jwt攻击 jwt介绍 工具使用 学习来源 前端 存在问题 任意用户注册 未授权访问&#xff0c;直接访问对应链接&#xff0c;可得到系统权限 可爆破用户名 爆破用户名&#xff0c;密码 用户名注入 万能密码 用户名Xss 修改返回包信息&#…

(三)计算机组成原理——总线

文章目录&#xff08;三&#xff09;计算机组成原理——总线总线的基本概念单总线双总线面向CPU以存储器为中心总线的分类片内总线系统总线数据总线地址总线控制总线通信总线总线特性及性能指标总线特性机械特性电气特性功能特性时间特性性能指标总线标准总线结构单总线多总线双…

3.1 python高阶应用

文章目录闭包装饰器设计模式单例模式工厂模式多线程进程、线程和并行执行多线程编程网络编程服务端开发客户端开发正则表达式基础匹配元字符匹配递归闭包 def account_create(inital_account 0) :def atm(num:int,deposite:bool True) :# 声明inital_account是外部声明的init…

【Ajax】服务器的基本概念

一、客户端与服务器上网的目的通过互联网的形式来获取和消费资源。2. 服务器上网过程中&#xff0c;负责存放和对外提供资源的电脑&#xff0c;叫做服务器。3. 客户端上网过程中&#xff0c;负责获取和消费资源的电脑&#xff0c;叫做客户端。二、URL地址URL地址的概念URL&…

工业互联网2022:第一梯队成型、专精玩家突围

文|智能相对论作者|沈浪回顾2022年&#xff0c;市场依旧对工业互联网领域保持着高度的热情与专注。近期&#xff0c;IDC、Gartner等各大国际研究机构接连发布多份工业互联网相关报告&#xff0c;包括《2022年度中国工业互联网平台企业侧市场分析报告》《2022年度工业互联网平台…

唯一杰出级!百度智能云曦灵获信通院权威认证

​中国信通院公布“数字人系统评测结果” 百度智能云曦灵平台 继首批通过48项基础能力评测后 在第二轮性能分级评测中 以超高分获得行业唯一“杰出级”证书 代表了当前数字人的最高标准 该评测标准依托国际电信联盟&#xff08;ITU&#xff09;、中国通信标准化协会&#xff08…

JNPF低代码开发平台 全新版本 使用讨论 多用户商城系统源码 框架源码部署文档

JNPF快速开发平台是一套成熟的快速开发框架&#xff0c; JNPF作为承重墙&#xff0c;强大支撑保障&#xff0c;提供所有操作系统的生长土壤&#xff0c;JNPF快速开发平台采用前后端分离技术、采用B/S架构开发&#xff0c;形成一站式开发多端&#xff08;APPPC&#xff09;使用&…

【手写 Vue2.x 源码】第二十九篇 - diff算法-节点比对

一&#xff0c;前言 上篇&#xff0c;diff 算法问题分析与 patch 方法改造&#xff0c;主要涉及以下几点&#xff1a; 初始化与更新流程分析&#xff1b;问题分析与优化思路&#xff1b;新老虚拟节点比对模拟&#xff1b;patch 方法改造&#xff1b; 下篇&#xff0c;diff 算…

Mysql的锁问题:

Mysql的锁问题&#xff1a; 1.1锁的概述&#xff1a; ​ Mysql锁的机制比较简单&#xff0c;不同的存储引擎支持不同的锁机制&#xff1a;MyISAM和MEMORY存储引擎支持表级锁&#xff1b;DBD支持页面锁&#xff0c;但是它也支持表级锁&#xff1b;InnoDB既支持行级锁也支持表级…

23-1-18 文件上传

步骤 file01 / file02 分别是两台java服务 功能: 主要负责接收用户上传的文件存储在指定目录 并记录(上传时间、上传人、文件信息(大小&#xff0c;源文件名&#xff0c;存储后的文件名 ....) 文件权限(共享、私有))。负责接收处理用户的下载请求&#xff0c;用户可以根据文件…