洛谷P1003铺地毯

article/2025/11/9 15:58:47

题目描述

为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有 nn 张地毯,编号从 11 到 nn。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。

地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖。

输入格式

输入共 n + 2n+2 行。

第一行,一个整数 n,表示总共有 n 张地毯。

接下来的 nn 行中,第 i+1 行表示编号 i 的地毯的信息,包含四个整数 a ,b ,g ,k每两个整数之间用一个空格隔开,分别表示铺设地毯的左下角的坐标 (a, b)以及地毯在 x 轴和 y 轴方向的长度。

第 n + 2n+2 行包含两个整数 xx 和 yy,表示所求的地面的点的坐标 (x, y)。

输出格式

输出共 1 行,一个整数,表示所求的地毯的编号;若此处没有被地毯覆盖则输出 -1

大概分析一下:即为在一块方块中不断覆盖上不同的地毯,最后寻找某点上最上层的地毯,这里可以画一张图方便理解

 起初我的思路是这样的,创建一个二维数组代表地毯,就将二维数组的每个元素全部放-1进去,每铺一次,就将一个数字铺上去,地毯重复就会把下面的数字覆盖,最后选定一个查找的点的时候,直接取这个二维数组的值即可。

这样做是可行的,但是却发现了一个更简单的方法,如果要找到这个点在哪个地毯上,我们只需要从最后一个地毯开始遍历,观察这个点是否在这个地毯上,如果在,直接输出即可,不在  就看上一个铺的地毯。

typedef struct rug {int lx;int ly;int rx;int ry;
}rug;

这里先创建了一个名为rug的结构体用来记录地毯的两顶点坐标,然后使用结构体数组进行储存

	rug num[10000];

从最上面的地毯进行遍历

for (int i = n - 1; i >= 0; i--) {if (x >= num[i].lx && x <= num[i].rx&& y >= num[i].ly && y <= num[i].ry) {cout << i + 1;return 0;}

最后将整段代码提供给大家(最后不会了再复制粘贴)

#include<iostream>
using namespace std;
typedef struct rug {int lx;int ly;int rx;int ry;
}rug;
//地毯的左下角坐标和右上角坐标
int main() {int n;int x, y;//需要查看地面的坐标cin >> n;rug num[10000];for (int i = 0; i < n; i++) {int f, g;cin >> num[i].lx >> num[i].ly >> f >> g;num[i].rx = f + num[i].lx;num[i].ry = g + num[i].ly;}cin >> x >> y;//从最后的地毯上开始看这个点是否在地毯上for (int i = n - 1; i >= 0; i--) {if (x >= num[i].lx && x <= num[i].rx&& y >= num[i].ly && y <= num[i].ry) {cout << i + 1;return 0;}}cout << -1;return 0;
}


http://chatgpt.dhexx.cn/article/u5MW7Ryp.shtml

相关文章

14:铺地毯

原题链接 总时间限制: 1000ms 内存限制: 65536kB 描述 为了准备一个独特的颁奖典礼&#xff0c;组织者在会场的一片矩形区域&#xff08;可看做是平面直角坐标系的第一象限&#xff09;铺上一些矩形地毯。一共有n张地毯&#xff0c;编号从1到n。现在将这些地毯按照编号从小到…

铺地毯(信息学奥赛一本通-T1118)

【题目描述】 为了准备一个独特的颁奖典礼&#xff0c;组织者在会场的一片矩形区域&#xff08;可看做是平面直角坐标系的第一象限&#xff09;铺上一些矩形地毯。一共有n张地毯&#xff0c;编号从1到n。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设&#xff0c;…

Bailian4033 铺地毯【暴力】

4033:铺地毯 总时间限制: 1000ms 内存限制: 65535kB 描述 为了准备一个独特的颁奖典礼&#xff0c;组织者在会场的一片矩形区域&#xff08;可看做是平面直角坐标系的第一象限&#xff09;铺上一些矩形地毯。一共有 n张地毯&#xff0c;编号从 1 到n。现在将这些地毯按照编号从…

【C++】题解 | [NOIP2011]铺地毯

题目描述 为了准备一个独特的颁奖典礼&#xff0c;组织者在会场的一片矩形区域&#xff08;可看做是平面直角坐标系的第一象限&#xff09;铺上一些矩形地毯。一共有n张地毯&#xff0c;编号从1到n。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设&#xff0c;后铺…

u盘安装CentOS(linux)的步骤(含双系统)

为了学习新的知识&#xff0c;决定给自己的神舟本子装上CentOS系统&#xff0c;于是乎就自己在网上搜了教程&#xff0c;然而自己在安装的过程中还是出现了小问题&#xff0c;尤其是为了进入图形安装界面花了我很大的力气&#xff0c;经过多次尝试终于成功&#xff0c;&#xf…

使用U盘安装CentOS7系统

使用U盘安装CentOS7.6 制作启动U盘 准备工作&#xff1a; 8G以上没有任何内容的U盘 UltraISO虚拟光驱&#xff08;试用版即可&#xff09;最新版 下载地址&#xff1a;https://cn.ultraiso.net/xiazai.html 点击下载试用 Centos7包 : ​ CentOS7.6&#xff08;目前生产环…

Centos7 U盘 安装

目录 一 描述环境 二 下载镜像 2.1 阿里云下载地址: 2.2 Centos 下载&#xff1a; 三 制作U盘启动盘 3.1 下载软碟通 最新UltraISO官方免费下载 - UltraISO软碟通中文官方网站下载https://cn.ultraiso.net/xiazai.html 3.2 傻瓜安装即可&#xff08;不赘述&#xff09; 3.3…

U盘安装 CentOS 7 避坑指南

网上关于CentOS 7 的安装教程挺多的&#xff0c;但在前期的引导配置上很多都没有写清楚&#xff0c;让人很郁闷&#xff0c;以致于昨天安装的时候总是到不了安装界面。经过一番倒腾&#xff0c;终于找到了妥妥的解决方案&#xff08;鸟哥的书功不可没啊^_^... 一&#xff0c;准…

如何u盘安装Linux系统CentOS7.2

常见问题&#xff1a; 1.刻录镜像的时候只能刻录一个6MBEFI文件夹到U盘&#xff0c;U盘变成只有6MB容量; 2.开机卡在Press thekey to begin the installation process界面; 3.不能识别NTFS分区; 4.不能挂载U盘/光驱; 5.安装进行到图形化配置界面时提示错误退出; 等等问题&#…

U盘安装Centos7的步骤详解

安装操作系统 以下采用U盘方式安装CentOS 7.2&#xff0c;若采用其他方式安装&#xff0c;仅第一步不同。 第1步&#xff1a;设置U盘为开机启动方式 插上U盘&#xff0c;启动服务器&#xff0c;在启动画面时&#xff0c;按F7&#xff08;机器不同时有所差异&#xff09;&#…

从U盘安装CentOS7.0教程

从U盘安装CentOS7.3教程 2017年12月01日 11:09:36 菲宇 阅读数&#xff1a;14612 版权声明&#xff1a;欢迎交流&#xff0c;菲宇运维&#xff01; https://blog.csdn.net/bbwangj/article/details/78684534 0.准备工作: 一台没系统的普通电脑 u盘一个&#xff08;大于1G&am…

U盘安装centos8系统

找了很久都没找到关于centos8的合适的安装教程&#xff0c;所以我就参考官方文档自己写一篇博客供大家参考 1. 下载镜像文件 我下载的centos8最新版的&#xff0c;下载地址&#xff1a;http://isoredirect.centos.org/centos/8/isos/x86_64/&#xff0c;注意是下载dvd1.iso的文…

centos8之U盘安装操作系统

一、centos8简介 CentOS是免费的、开源的、可以重新分发的开源操作系统&#xff0c;CentOS&#xff08;Community Enterprise Operating System&#xff0c;中文意思是社区企业操作系统&#xff09;是Linux发行版之一。CentOS Linux发行版是一个稳定的&#xff0c;可预测的&…

U盘安装CentOS7.6的方法

今天拿了公司一台烂电脑装一下CentOS7.6&#xff0c;本身可以在自己电脑上装了虚拟主机的&#xff0c;但因公司给自己的电脑配置太垃圾了&#xff0c;装个虚拟机就卡的要死&#xff0c;所以找了一台垃圾的电脑外加个固态&#xff0c;装完之后通过xshell连接主机使用&#xff0c…

U盘安装centos7.8

一、准备工作&#xff1a; 1、下载centos7.8 地址&#xff1a;http://isoredirect.centos.org/centos/7/isos/x86_64/ 2、大于10G空白U盘一个 二、制作Centos安装盘 1、安装UltraISO 后打开UltraISO&#xff0c;插入U盘 2、找到Centos7包所在的文件夹&#xff0c;选择Centos…

U盘安装CentOS 7,简单有效

笔者前段时间使用U盘安装centos7&#xff0c;遇到很多问题&#xff0c;好在最后都解决了&#xff0c;而且摸索出了最简单有效的方法&#xff0c;现在做下整理&#xff0c;与大家分享。 准备工具 1.准备8G优盘(启动盘制作完成后&#xff0c;U盘占用约4.02G&#xff0c;所以需要…

服务器U盘安装安装centos

因为安装效果跟工具和版本都有关系&#xff0c;我这里用到的都会写清楚 1、用ultraiso 版本&#xff1a;9.6.5.3237 制作U盘启动盘 镜像 CentOS-7-x86_64-DVD-1511.iso 这里我先说一下思路&#xff1a; 我们要从优盘安装系统的话&#xff0c;是需要先通过一条指令指定一…

U盘安装Centos 8

本人由于工作原因&#xff0c;通过视频教过别人安装Centos系统&#xff0c;太难受了&#xff0c;所以写下步骤&#xff0c;记录一下&#xff0c;方便以后使用。 文章目录 硬件准备软件准备一、制作启动盘二、安装步骤 硬件准备 一个8G以上的U盘 软件准备 软碟通 UltraISO&a…

从U盘安装centos7完整安装

一、CentOS-7安装之后无法切换到图形界面 造成这个原因是因为,你在安装的时候 没有指定安装的图形化界面。系统默认只安装了命令行 解决办法:选择 software selection (软件位置选择)进去之后 选择 kde,然后正常安装就可以了 二、无法启动安装U盘 一般开机进入bios,F…

U盘安装CentOS7.1教程

开始学习大数据&#xff0c;需要Linux环境支持&#xff0c;于是开始安装Linux 由于电脑之前光驱被我拆掉了&#xff0c;只能进行U盘安装。然后在网上开始寻找用U盘装Linux的教程&#xff0c;都是先把ISO文件加载成启动U盘&#xff0c;然后再把ISO文件拖到U盘内进行安装&#xf…