洛谷题解 - P1003 [NOIP2011 提高组] 铺地毯

铺地毯 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有n张地毯,编号从1到n。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。 地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖。 输入格式 输... 阅读详情

题目描述

为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有 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 n≤2。
对于 50 % 50\% 50% 的数据, 0 ≤ a , b , g , k ≤ 100 0 \le a, b, g, k \le 100 0≤a,b,g,k≤100。
对于 100 % 100\% 100% 的数据,有 0 ≤ n ≤ 1 0 4 0 \le n \le 10^4 0≤n≤104, 0 ≤ a , b , g , k ≤ 10 5 0 \le a, b, g, k \le {10}^5 0≤a,b,g,k≤105。

noip2011 提高组 day1 第 1 1 1 题。

代码 1

对于我们 这种单纯的人 ,肯定一上来就 是暴力枚举 会开一个二维数组,就像这样:

#include <bits/stdc++.h>
using namespace std;
int dt[10005][10005];
int main()
{
	// 亻尔 女 子
	int n;
	cin >> n;
	for(int i=1; i<=n; i++)
	{
		int a,b,c,d;
		cin>>a>>b>>c>>d;
		for(int j=a; j<=c; j++)
		{
			for(int k=b; k<=d; k++)
			{
				dt[j][k]=i;
			}
		}
	}
	int x,y,ans=-1;
	cin>>x>>y;
	for(int i=0; i<=x; i++)
	{
		for(int j=0; j<=y; j++)
		{
			ans=max(ans,dt[i][j]);
			if(ans==n)
			{
				break;
			}
		}
	}
	cout<<ans;
	return 0;
}

然后你就会惊喜地发现!………………你拿到了40分
在这里插入图片描述

代码 2

对于这种 应该升绿 较为困难的题目,我们应该做一些优化,操作过程过于繁琐,不予解释,请自行理解

#include <bits/stdc++.h>
using namespace std;
const long long N = 1e6 + 5;
long long a[N], b[N], g[N], k[N], n, m, t, ans = -1;
int main() {
	cin >> n;
	for (long long i = 1; i <= n; i++)
		cin >> a[i] >> b[i] >> g[i] >> k[i];
	long long x, y;
	cin >> x >> y;
	for (long long i = 1; i <= n; i++)
		if ((x >= a[i] && x <= a[i] + g[i]) && (y >= b[i] && y <= b[i] + k[i]))
			ans = i;
	cout << ans;
	return 0;
}

谢谢观看!

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

相关推荐

题解:洛谷 P1003 [NOIP 2011 提高组] 铺地毯

题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。行,一个整数,表示所求的地毯的编号;,每两个整数之间用一个空格隔开,分别表示铺设地毯的左下角的坐标。,表示所求的地面的点的坐标。

团爸讲算法 1195

洛谷——P1003 铺地毯

现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。接下来的 n 行中,第 i+1 行表示编号 i 的地毯的信息,包含四个整数 a,b,g,k,每两个整数之间用一个空格隔开,分别表示铺设地毯的左下角的坐标 (a,b) 以及地毯在 x 轴和 y 轴方向的长度。地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。第 n + 2 行包含两个整数 x 和 y,表示所求的地面的点的坐标 (x,y)。输出共 1 行,一个整数,表示所求的地毯的编号;

明里灰的博客 702

kettle9.0+ 连接Hadoop报错

kettle bug

x²+(y-√³x²)²=1的博客 1562

洛谷 P1003 讲解(C++)

我们不妨换一个思路,先将 a,b,g,k 储存起来,最后在一个个遍历。但是,细心的读者肯定发现,这道题 a,b,g,k的最大值小于10^5。经过计算,代码的时间复杂度是O(n),最坏遍历次数约为为10^4,不会TLE,空间复杂度。首先,在看到这道题时,最直观的想法就是开一个二维数组,每次遍历一张地毯,并更新二。x,y的最大值为 2*10^5 ,二维数组的大小就是 4*10^10 ,喜提MLE。为O(n),空间为10^4,不会MLE。

probable__的博客 758

2023-2024深度学习框架之争——选pytorch还是tensorflow?

深度学习是人工智能领域的一个重要分支,它利用多层神经网络来模拟人类的学习和推理能力,解决各种复杂的问题,如图像识别、自然语言处理、语音识别、推荐系统等。深度学习框架是一种软件工具,它提供了构建、训练、测试和部署深度学习模型的便利,使得开发者和研究者可以更高效地进行深度学习的开发和应用。目前,市场上有许多不同的深度学习框架,如PyTorch、TensorFlow、Keras、MXNet、Caffe2等,它们各有优劣,适用于不同的场景和需求。

flchen_nchu的博客 6757

INMP441麦克风与ESP32的I2S音频采集实战指南

本文提供了INMP441数字麦克风与ESP32开发板通过I2S接口进行高质量音频采集的完整实战指南。详细讲解了硬件连接、软件配置、数据读取及基础处理,并分享了常见的避坑技巧与性能优化建议,帮助开发者快速构建物联网音频应用。

weixin_28396629的博客 599

洛谷普及练习场P1003 铺地毯

洛谷普及练习场P1003 铺地毯 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有 n 张地毯,编号从 1 到n。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。 地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意:在矩形地毯边界和四个顶点上的点也算被...

BeZer0的学习笔记 304

【报错解决】彻底解决 MySQL 登录报错 ERROR 1045 (28000)

MySQL 报错 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 通常是由于用户名或密码错误、权限不足、服务未启动或配置文件异常导致的。通过检查并确认密码、重置 root 用户密码、授予完整权限、校验配置文件以及确保 MySQL 服务正常运行,可以彻底解决该问题。掌握这一流程不仅能够恢复 root 登录,还能保障数据库的安全性与稳定性。

博客 1752

洛谷P1003(铺地毯[NOIP 2011 提高组])题解

洛谷P1003详解4000字

2201_75316840的博客 818

智能家居系统设计:基于MATLAB的智能家居系统设计和仿真,包括智能家居控制、家庭能源管理和家庭安全监控

基于 MATLAB 的智能家居系统设计方法可以有效地解决各类智能家居问题。

走向CTO的路上... 1775

duilib入门基础一 容器之 BOX、VBOX、HBOX布局及其子控件align排列方式

序 容器 duilib有以下主要布局容器 Box(自由布局容器) VBox(垂直布局容器) HBox(水平布局容器) TabBox(多标签布局容器) TileBox(格子布局容器) ChildBox(子布局容器) ScrollableBox(可滚动容器) 一、Box容器布局 Box容器及其扩展VBox HBox是其中最常用的容器。 相对Box来说,HBox, VBox更好理解些 1.1 VBox HBox VBox下的各个控件垂...

目前打算换一个工作,有招聘windows c++方向的也欢迎联系,北京、济南 最好 3083

洛谷P1003 [NOIP2011提高组] 铺地毯 视频题解

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

广东省清远市博爱学校—尚贤的博客 346

Rockchip开发系列 - 3.4.GPIO扩展芯片AW95xx和PCA953X(2)

Rockchip开发系列 - 3.3.GPIO扩展芯片AW95xx和PCA953X(2)

fulinux的博客 1007

洛谷P1003 [NOIP 2011 提高组] 铺地毯 python题解

现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。接下来的 n 行中,第 i+1 行表示编号 i 的地毯的信息,包含四个整数 a,b,g,k,每两个整数之间用一个空格隔开,分别表示铺设地毯的左下角的坐标 (a,b) 以及地毯在 x 轴和 y 轴方向的长度。检查,如果点在该地毯的覆盖范围内,则直接输出该地毯的编号。如下图,1 号地毯用实线表示,2 号地毯用虚线表示,3 号用双实线表示,覆盖点 (2,2) 的最上面一张地毯是 3 号地毯。输入共 n+2 行。

2201_75920261的博客 419

FFmpeg 开发(01):FFmpeg 编译和集成

尽管 FFmpeg 功能强大,但是由于其采用的是带有传染性的 LGPL/GPL 开源协议,所以一些大厂基本上都是自己独立开发类似的音视频处理库,甚至在接口和组织模块上模仿 FFmpeg 。

字节流动 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

洛谷P1003 [NOIP2011 提高组]铺地毯题解

暴力模拟

Clouding_Yu的博客 853

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

洛谷P1003 [NOIP2011 提高组] 铺地毯题解

接下来的 nn 行中,第 i+1i+1 行表示编号 ii 的地毯的信息,包含四个整数 a ,b ,g ,ka,b,g,k,每两个整数之间用一个空格隔开,分别表示铺设地毯的左下角的坐标 (a, b)(a,b) 以及地毯在 xx 轴和 yy 轴方向的长度。如下图,11 号地毯用实线表示,22 号地毯用虚线表示,33 号用双实线表示,覆盖点 (2,2)(2,2) 的最上面一张地毯是 33 号地毯。我们来看一下样例1,如图2,红地毯为第一个地毯,黄地毯为第二个地毯,蓝地毯为第三个地毯,绿点为要求的点,最后是。...

zzsaghjk的博客 405

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【洛谷 P1003】[NOIP2011 提高组] 铺地毯 题解(数组+贪心算法)

为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有n张地毯,编号从1到n。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖。

HEX9CF的技术博客 808

洛谷 P1003 [NOIP 2011 提高组] 铺地毯 题解

摘要:该问题要求找出覆盖指定点的最上层地毯编号。关键在于逆向检查地毯覆盖范围,从最后铺设的地毯开始逐一判断目标点是否在其范围内(x∈[a,a+g], y∈[b,b+k])。若找到符合条件的第一个地毯即可输出编号,否则返回-1。该方法通过逆序检查优化了查找效率,确保快速定位最上层覆盖物。代码实现简洁,直接处理输入数据并执行逆向遍历,边界情况处理完善。

likunyuan0830的博客 287

[洛谷] P1003 [NOIP 2011 提高组] 铺地毯 题解

摘要 题解针对P1003铺地毯问题,提出避免直接枚举N×N网格的高效解法。通过存储每块地毯参数(左下角坐标、长宽),逆向检查目标点是否被覆盖。该方法时间复杂度O(N),空间复杂度O(N),完美处理1≤N≤10,000的数据范围。核心代码仅需遍历地毯数组,用边界条件判断覆盖关系,最后输出最上层地毯编号。解法简洁高效,避免了二维数组的内存消耗问题。

Tori_Y的博客 228

【洛谷题解】P1003 [NOIP2011 提高组] 铺地毯 题解

题目传送门 提前上代码: #include<bits/stdc++.h> using namespace std; int a[100005],b[100005],g[100005],k[100005]; int main() { int n,t = -1,x,y; cin>>n; for(int i = 0;i < n;i++) cin>>a[i]>>b[i]>>g[i]>>k[i]; cin>>x

Rocky_Skye的博客 292

洛谷 P1003 [NOIP2011 提高组] 铺地毯 题解

洛谷 P1003 [NOIP2011 提高组] 铺地毯 题解

yuanhao0704的博客 171

洛谷P1003 [NOIP2011 提高组] 铺地毯题解ac代码带注释

题解。

runlerunle的博客 125

洛谷————P1003 [NOIP 2011 提高组] 铺地毯

现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。接下来的 n 行中,第 i+1 行表示编号 i 的地毯的信息,包含四个整数 a,b,g,k,每两个整数之间用一个空格隔开,分别表示铺设地毯的左下角的坐标 (a,b) 以及地毯在 x 轴和 y 轴方向的长度。如下图,1 号地毯用实线表示,2 号地毯用虚线表示,3 号用双实线表示,覆盖点 (2,2) 的最上面一张地毯是 3 号地毯。第 n+2 行包含两个整数 x 和 y,表示所求的地面的点的坐标 (x,y)。

2401_86810542的博客 1867
上一篇: 高精度加法C++实现
下一篇: 【模板】三分 | 函数 使用 SA 解决
Python_enjoy
博客等级 码龄4年 1201粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值