news 2026/10/13 17:55:03

P1003 [NOIP 2011 提高组] 铺地毯

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
P1003 [NOIP 2011 提高组] 铺地毯

P1003 [NOIP 2011 提高组] 铺地毯

题目描述

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

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

输入格式

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

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

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

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

输出格式

输出共111行,一个整数,表示所求的地毯的编号;若此处没有被地毯覆盖则输出-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】

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

【数据范围】

对于30%30\%30%的数据,有n≤2n \le 2n≤2。
对于50%50\%50%的数据,0≤a,b,g,k≤1000 \le a, b, g, k \le 1000≤a,b,g,k≤100。
对于100%100\%100%的数据,有0≤n≤1040 \le n \le 10^40≤n≤104,0≤a,b,g,k≤1050 \le a, b, g, k \le {10}^50≤a,b,g,k≤105。

noip2011 提高组 day1 第111题。

思路

1.先将输入的地毯矩形保存
2.然后从后往前便利矩形,如果查询点在地毯上,表示找到答案,直接输出,如果一直没有符合条件的地毯,输出-1

解析

#include<iostream>#include<cstdio>using namespace std;#defineN10005intn;// n个地毯inta[N],b[N],x[N],y[N];// 地毯i对应坐标(a, b), 以及x,y方向矩形长度intqx,qy;// 询问坐标(qx, qy)intans=-1;// 保存答案intmain(){cin>>n;for(inti=1;i<=n;i++)cin>>a[i]>>b[i]>>x[i]>>y[i];cin>>qx>>qy;// 输入询问点// 从后往前遍历,寻找最后覆盖询问点的地毯号for(inti=n;i>0;i--){if(a[i]<=qx&&qx<a[i]+x[i]&&b[i]<=qy&&qy<b[i]+y[i]){ans=i;// 找到答案,直接退出break;}}cout<<ans<<endl;// 输出答案return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/12 16:33:22

SpringBoot+Vue html+css在线英语阅读分级平台平台完整项目源码+SQL脚本+接口文档【Java Web毕设】

摘要 随着全球化进程的加速和信息技术的飞速发展&#xff0c;英语阅读能力的重要性日益凸显。然而&#xff0c;传统的英语阅读教学方式往往缺乏个性化指导&#xff0c;难以满足不同水平学习者的需求。在线英语阅读分级平台通过智能化技术&#xff0c;能够根据用户的阅读能力动态…

作者头像 李华
网站建设 2026/10/13 8:08:27

【C++ 入门】类和对象(上)

大家好&#xff01;今天咱们正式踏入 C 的核心 ——类和对象的世界。如果说 C 语言是 “面向过程” 的工具箱&#xff0c;那 C 的 “类和对象” 就是把工具打包成 “智能设备”&#xff0c;让代码更贴近现实逻辑。这篇文章先从最基础的 3 个问题入手&#xff1a;对象占多大内存…

作者头像 李华
网站建设 2026/10/13 7:50:57

50、Windows Forms开发:多窗体显示与常用控件介绍

Windows Forms开发:多窗体显示与常用控件介绍 在Windows Forms应用程序开发中,我们常常需要创建额外的窗口或窗体来满足不同的需求,同时也会用到各种控件来展示和处理数据。本文将介绍如何显示其他窗体,以及一些常见的数据显示控件。 显示其他窗体 在Windows Forms应用中…

作者头像 李华
网站建设 2026/10/12 20:53:57

【C++ 入门】类和对象(中)

大家好&#xff01;上一篇我们学会了对象的 “出生”&#xff08;构造函数&#xff09;和 “死亡”&#xff08;析构函数&#xff09;&#xff0c;今天咱们聚焦对象的 “日常互动”—— 怎么用已有对象 “克隆” 新对象&#xff1f;怎么让自定义类型像int一样用、做运算&#x…

作者头像 李华