[NOIP2011 提高组] 铺地毯

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

[NOIP2011 提高组] 铺地毯

题目描述

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

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

输入格式

输入共 n + 2 n + 2 n+2 行。

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

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

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

输出格式

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

样例 #1

样例输入 #1

3
1 0 2 3
0 2 3 3
2 1 3 3
2 2

样例输出 #1

3

样例 #2

样例输入 #2

3
1 0 2 3
0 2 3 3
2 1 3 3
4 5

样例输出 #2

-1

提示

【样例解释 1】

如下图, 1 1 1 号地毯用实线表示, 2 2 2 号地毯用虚线表示, 3 3 3 号用双实线表示,覆盖点 ( 2 , 2 ) (2,2) (2,2) 的最上面一张地毯是 3 3 3 号地毯。

【数据范围】

对于 30 % 30\% 30% 的数据,有 n ≤ 2 n \le 2 n2
对于 50 % 50\% 50% 的数据, 0 ≤ a , b , g , k ≤ 100 0 \le a, b, g, k \le 100 0a,b,g,k100
对于 100 % 100\% 100% 的数据,有 0 ≤ n ≤ 1 0 4 0 \le n \le 10^4 0n104, 0 ≤ a , b , g , k ≤ 10 5 0 \le a, b, g, k \le {10}^5 0a,b,g,k105

首先,很容易想到开一个大小 N ∗ N N * N NN 的二维数组。很简单直接贴代码。

#include <bits/stdc++.h>using namespace std;
int n;
int a[10006][10006];//存点(i,j)最上面的一层地毯
int main(){cin>>n;for(int k=1;k<=n;k++){int c,d,x,y;cin>>c>>d>>x>>y;//a,b,g,kfor(int i=c;i<=c+x;i++){for(int j=d;j<=d+y;j++){a[i][j]=k;}}}int x,y;cin>>x>>y;if(a[x][y]==0) printf("-1");//如果没被覆盖输出-1else cout<<a[x][y];//输出答案return 0;
}

提交后会发现 M L E MLE MLE
400 M B MB MB出界

还有一种方法用四个数组来记录矩形的四个参数,再扫一遍数组,通过检查坐标 ( x , y ) (x, y) (x,y) 是否在矩形内,更新最上面的地毯。
AC代码:

#include <bits/stdc++.h>using namespace std;
int a[100006],b[100006],c[100006],d[100006];//存a,b,g,k
int main(){int n;cin>>n;for(int i=1;i<=n;i++){cin>>a[i]>>b[i]>>c[i]>>d[i];//输入}int x,y;int ans;cin>>x>>y;for(int i=1;i<=n;i++){if(x>=a[i]&&x<=a[i]+c[i]&&y>=b[i]&&y<=b[i]+d[i]){//判断是否满足要求ans=i;//ans将为最终答案}}if(ans==0) printf("-1");//输出else cout<<ans;return 0;
}


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

相关文章

信息学奥赛一本通(c++):1118:铺地毯

信息学奥赛一本通&#xff08;c&#xff09;&#xff1a;1118&#xff1a;铺地毯 活动地址&#xff1a;CSDN21天学习挑战赛 一、题目 1118&#xff1a;铺地毯时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 为了准备一个独特的颁奖典礼&#xff0c;组织者在会场…

蓝桥杯:铺地毯

为了准备一个学生节&#xff0c;组织者在会场的一片矩形区域&#xff08;可看做是平面直角坐标系的第一象限铺上一些矩形地毯。一共有n 张地毯&#xff0c;编号从1 到n。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设&#xff0c;后铺的地毯覆盖在前面已经铺好的地…

P1003 铺地毯 C++

题目地址&#xff1a;https://www.luogu.org/problemnew/show/P1003 题目&#xff1a; 题目描述 为了准备一个独特的颁奖典礼&#xff0c;组织者在会场的一片矩形区域&#xff08;可看做是平面直角坐标系的第一象限&#xff09;铺上一些矩形地毯。一共有 nn 张地毯&#xff…

【牛客】铺地毯题解

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

铺地毯-枚举

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 为了准备一个独特的颁奖典礼&#xff0c;组织者在会场的一片矩形区域&#xff08;可看做是平面直角坐标系的第一象限&#xff09;铺上一些矩形地毯。一共有n张地毯&#xff0c;编号从…

铺地毯题目

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

C++铺地毯

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

铺地毯

题解&#xff1a; 没什么好写的 从大到小判断&#xff0c;输出第一个满足条件的矩形 代码&#xff1a; #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> #include<vector> #include<…

洛谷P1003铺地毯

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

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…