蓝桥杯第 2 场算法双周赛 第2题 铺地板【算法赛】c++ 数学思维
题目
铺地板
https://www.lanqiao.cn/problems/5887/learning/?contest_id=145
问题描述
小蓝家要装修了,小蓝爸爸买来了很多块(你可以理解为数量无限)2×32×3 规格的地砖,小蓝家的地板是 n×m 规格的,小蓝想问你,能否用这些 2×32×3 的地砖铺满地板。
铺满地板:对于地板的每个区域,都有且只有一块地砖覆盖,地砖可以旋转,但不能切割。
例如:对于 7×67×6 的地板,一种铺地板方式是:

当然,也存在其他别的铺法。
小蓝家是个多层小别墅,每一层的规格不一样,所以他会多次询问你不同规格的地板。
注意:请仔细读题,不要弄混地板和地砖。
输入格式
第一行输入一个整数 T,代表询问数量。
接下来 T 行,每行两个正整数 ni,mi,代表小蓝询问的地板规格。
输出格式
对于每次询问,如果 2×32×3 的地砖可以铺满地板,输出 Yes,否则输出 No。
样例输入
4
7 6
2 2
12 8
1 12
样例输出
Yes
No
Yes
No
说明
- 对于第一组询问,题干中存在正确铺法。
- 对于第二组询问,不存在任何铺法可以铺满。
作为一个程序员,应该有 666666 分的勇气。如果你觉得这是一个简单得很 66 的结论,但是你不知道如何证明,不妨提交一发试一试。
祝大家 1024 快乐。
评测数据范围
1≤T≤104,1≤n,m≤104。
运行限制
| 语言 | 最大运行时间 | 最大运行内存 |
|---|---|---|
| C++ | 1s | 128M |
| C | 1s | 128M |
| Java | 2s | 128M |
| Python3 | 3s | 128M |
| PyPy3 | 3s | 128M |
思路和解题方法
#include <iostream>和using namespace std;:这两行代码包含了所需的头文件和命名空间。#include <iostream>用于输入输出操作,using namespace std;允许直接使用标准库中的函数和对象,而无需使用std::前缀。
string canCoverFloor(int n, int m):这部分代码定义了一个函数canCoverFloor,它接受两个整型参数n和m,分别表示地板的行数和列数。
int area = n * m;:在函数内部,首先计算地板的面积,即行数乘以列数,并将结果存储在变量area中。
int tile_area = 6;:然后定义了一个变量tile_area,表示地砖的面积,这里假设地砖的大小为2x3,因此地砖的面积为6。
if (area % tile_area == 0 && n >= 2 && m >= 2):接下来,使用条件语句判断地板是否可以被地砖完全覆盖。条件包括两部分:首先,地板面积必须能够整除地砖面积,即area % tile_area == 0;其次,行数和列数都必须大于等于2,即n >= 2 && m >= 2。
return "Yes";和return "No";:如果满足条件,则返回字符串"Yes";否则返回字符串"No"。
int main():这部分代码定义了主函数main,是程序的入口点。
int T;:首先声明一个整型变量T,用于存储询问数量。
cin >> T;:然后使用输入流cin读取用户输入的询问数量,并将其存储在变量T中。
for (int i = 0; i < T; i++):使用for循环来处理每个询问。循环条件是i < T,即循环执行T次。
int n, m;:在每次循环中,声明两个整型变量n和m,用于存储地板的行数和列数。
cin >> n >> m;:使用输入流cin读取地板的行数和列数,并将它们存储在相应的变量中。
string result = canCoverFloor(n, m);:调用函数canCoverFloor(n, m)判断地板是否可以被地砖完全覆盖,并将结果存储在字符串变量result中。
cout << result << endl;:使用输出流cout将结果输出到控制台,并在末尾添加换行符endl。
return 0;:循环结束后,返回0表示程序正常结束。
复杂度
时间复杂度:
O(T)
时间复杂度主要取决于循环的执行次数T,即O(T)。
空间复杂度:
O(1)
整个程序的空间复杂度为O(1),即常数级别的空间开销。
c++ 代码
#include <iostream>
using namespace std;string canCoverFloor(int n, int m) {int area = n * m; // 计算地板面积int tile_area = 6; // 地砖面积为2x3=6if (area % tile_area == 0 && n >= 2 && m >= 2) { // 如果地板可以被地砖完全覆盖且行列数都大于等于2return "Yes";} else {return "No";}
}int main() {int T;cin >> T; // 询问数量for (int i = 0; i < T; i++) {int n, m;cin >> n >> m;string result = canCoverFloor(n, m); // 调用函数判断地板是否可以被地砖完全覆盖cout << result << endl; // 输出结果}return 0;
}
觉得有用的话可以点点赞,支持一下。
如果愿意的话关注一下。会对你有更多的帮助。
每天都会不定时更新哦 >人< 。
相关文章:
蓝桥杯第 2 场算法双周赛 第2题 铺地板【算法赛】c++ 数学思维
题目 铺地板https://www.lanqiao.cn/problems/5887/learning/?contest_id145 问题描述 小蓝家要装修了,小蓝爸爸买来了很多块(你可以理解为数量无限)2323 规格的地砖,小蓝家的地板是 nm 规格的,小蓝想问你…...
APScheduler-调度器 BackgroundScheduler
当你有主程序需要执行,让定时任务在后台执行时,可以用BackgroundScheduler from apscheduler.schedulers.background import BackgroundScheduler import time # 仅运行定时任务 scheduler BackgroundScheduler() # interval example, 间隔执行,…...
浅谈UI自动化测试
随着软件行业的不断发展,建立一个完善的自动化测试体系变得至关重要。目前,自动化测试主要涵盖接口自动化测试和UI自动化测试两个主要领域。就目前而言,企业在UI自动化测试方面的覆盖率仍然相对较低。 接口自动化测试可以模拟和执行应用程序…...
golang 工程组件 grpc-gateway—yaml定义http规则,和自定义实现网关路由
yaml定义http规则,和自定义实现网关路由 proto定义http规则总归是麻烦的,因为proto文件还是定义消息,grpc接口好一些。配置http规则有更好的方式。我们可以使用yaml文件定义接口的http规则。 同时有些接口不是只是让网关转发这么简单 有时需…...
在NLP中一下常见的任务,可以用作baseline;MRPC,CoLA,STS-B,RTE
1.MRPC(Microsoft Research Paraphrase Corpus)任务 是一个用于文本匹配和相似度判断的任务。在MRPC任务中,给定一对句子,模型需要判断它们是否是语义上等价的。MRPC任务的训练集和测试集由约5700对英语句子组成。每个句子对都有…...
【计算机网络笔记】Cookie技术
系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…...
在虚拟环境中,通过pip安装tensorflow
目录 激活python虚拟环境,更新pip 通过pip 安装tensorflow 确定python版本: 编辑安装tensorflow: 编辑 为什么使用pip安装tensorflow? 激活python虚拟环境,更新pip 命令为python -m pip install --upgrade pip 通过pip 安装tensorf…...
【Django restframework】django跨域问题,解决PUT/PATCH/DELETE用ajax请求无法提交数据的问题
【Django restframework】django跨域问题,解决PUT/PATCH/DELETE用ajax请求无法提交数据的问题 1 问题描述: 我用restframework(ModelSerializerGenericApiView)开发了一组符合RestFul接口标准的接口,这意味着它将支持客户端发来的GET、POST、…...
神经网络与深度学习第四章前馈神经网络习题解答
[习题4-1] 对于一个神经元 ,并使用梯度下降优化参数时,如果输入恒大于0,其收敛速度会比零均值化的输入更慢。 首先看一下CSDN的解释: 如果输入x恒大于0,使用sigmoid作为激活函数的神经元的输出值将会处于饱和状态&a…...
Go 语言操作 MongoDb
文章目录 连接数据库插入数据库插入一条数据批量插入数据 查询数据用 BSON 进行复合查询聚合查询 更新数据删除数据 连接数据库 package mainimport ("context""go.mongodb.org/mongo-driver/mongo""go.mongodb.org/mongo-driver/mongo/options"…...
UE4/5 竖排文字文本
方法一、使用多行文本组件 新建一个Widget Blueprint 添加Text 或者 Editable Text(Multi-Line) 、TextBox(Multi-Line) 组件。 添加文字,调整字号,调整成竖排文字。 在Wrapping (换行)面板中 : 勾选 Auto Wrap te…...
centos jdk 安装
1、oracle官网下载jdk8 https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 2、楼主用的以前下载好的安装包jdk-8u111-linux-x64.gz。下载后使用工具如Xftp将安装包上传到/opt目录下,这里随便什么目录都行,并解压安装包。 c…...
【计算机网络】什么是HTTPS?HTTPS为什么是安全的?
【面试经典题】 前言: HTTP最初的设计就是用于数据的共享和传输,并没有考虑到数据的安全性,如窃听风险,篡改风险和冒充风险。HTTPS是在 HTTP 的基础上引入了一个加密层。HTTPS通过数据加密,数据完整性检验和身份认证…...
Windows-Oracle19c 安装详解-含Navicate远程连接配置 - 同时连接Oracle11g和Oracle19c
文章目录 0 说明1 下载链接2 安装:一定要以管理员身份运行,不然后面有可能会报错。3 启动监听4. 登录Oracle4 Navicate远程连接-配置监听4.1 修改监听文件4.2 网络配置助手-配置本地监听端口4.3 Navicate连接成功 5 Navicate同时连接两个Oracle数据库 0 …...
文件权限详解
一、文件类型 ll指令查看文件详细信息中,第一列就是文件类型。 常见的文件类型有: 1、 - :普通文件 (文本、源代码、图片、视频、可执行) 2、 d :目录文件 3、b :块设备 4、c ࿱…...
在声明和定义的一些小坑
1、静态成员变量的初始化 静态成员变量声明在 .h 头文件文件中,初始化应该在 .cpp 源文件中 就会出现"找到一个或多个多重定义的符号",下面的错误 class MyString{public:typedef char* iterator;typedef const char* const_iterator;iterator begin();…...
浏览器事件循环 (event loop)
进程与线程 进程 进程的概念 进程是操作系统中的一个程序或者一个程序的一次执行过程,是一个动态的概念,是程序在执行过程中分配和管理资源的基本单位,是操作系统结构的基础。 简单的来说,就是一个程序运行开辟的一块内存空间&a…...
P1868 饥饿的奶牛
根据题意可以知道是一个动态规划,看完数据范围之后可以知道是一个线性DP。 解决方法有点类似于背包问题,枚举背包的每一个空间。 如果把坐标轴上每个点都看成一个块儿,只需要按顺序求出前 i 个块儿的最大牧草堆数,f[i] 就是前i的…...
【软考系统架构设计师】2021年系统架构师综合知识真题及解析
本文主要分享2021年下半年系统架构师综合知识历年真题以及本人在做题时的所思所想。题目序号有点混乱,可忽略 【01】.某计算机系统页面大小为4K,进程P1的页面变换表如下图所示,看P1要访问数据的逻辑地址为十六进制1B1AH,那么该逻辑地址经过变…...
如何在忘记手机密码或图案时重置 Android 手机?
忘记手机密码或图案是 Android 用户一生中不得不面对的最令人沮丧的事情之一。恢复 Android 设备的唯一方法是在 Android 设备上恢复出厂设置。但许多用户不使用此方法,因为此过程会擦除您设备上可用的所有个人数据。 但是,有一种方法可以在不丢失任何数…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...
