首页 > 其他分享 ># [NOIP2011 提高组] 铺地毯

# [NOIP2011 提高组] 铺地毯

时间:2024-05-26 16:11:22浏览次数:17  
标签:输出 le NOIP2011 int 提高 样例 地毯 carpet

传送锚点:https://www.luogu.com.cn/problem/P1003

题目描述

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

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

输入格式

输入共 \(n + 2\) 行。

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

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

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

输出格式

输出共 \(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\) 号地毯用实线表示,\(2\) 号地毯用虚线表示,\(3\) 号用双实线表示,覆盖点 \((2,2)\) 的最上面一张地毯是 \(3\) 号地毯。

https://cdn.luogu.com.cn/upload/image_hosting/q4izfzpb.png

【数据范围】

对于 \(30\%\) 的数据,有 \(n \le 2\)。
对于 \(50\%\) 的数据,\(0 \le a, b, g, k \le 100\)。
对于 \(100\%\) 的数据,有 \(0 \le n \le 10^4\), \(0 \le a, b, g, k \le {10}^5\)。

noip2011 提高组 day1 第 \(1\) 题。

思路:

利用结构体存储地毯左下角和右上角在x、y面坐标,然后我们在倒序遍历,如果查找的点在当前所遍历地毯内,直接输出编号,如果遍历完仍没有,则输出-1

code

#include <iostream>
using namespace std;
const int N = 1e4 + 10;
struct Carpet{
    int a,b,c,d;//c、d分别为毛毯右上角横、纵坐标
} carpet[N];
int main() {
    int n;
    cin >> n;
    for(int i = 1; i <= n; i++){
        int a,b,len_x,len_y;
        cin >> a >> b >> len_x >> len_y;
        carpet[i].a = a;
        carpet[i].b = b;
        carpet[i].c = a + len_x;
        carpet[i].d = b + len_y;
    }
    int x,y;
    cin >> x >> y;
    bool flag = false;//看是否被覆盖
    for(int i = n; i >= 1; i--){
        if(x >= carpet[i].a && x <= carpet[i].c){
            if(y >= carpet[i].b && y <= carpet[i].d){
                cout << i << endl;
                return 0;
            }
        }

    }
    if(!flag){
        cout << "-1" << endl;
    }
    return 0;
}

标签:输出,le,NOIP2011,int,提高,样例,地毯,carpet
From: https://www.cnblogs.com/6Luffy6/p/18213807

相关文章

  • 洛谷[普及]:P1149 [NOIP2008 提高组] 火柴棒等式
    [NOIP2008提高组]火柴棒等式感谢题目提供者CCF_NOI题目描述给你n 根火柴棍,你可以拼出多少个形如A+B=C 的等式?等式中的A、B、C 是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。用火柴棍拼数字 的拼法如图所示:注意:1.加号与等号各自需要两根火柴棍;2.如果,则......
  • 喜大普奔!LPDDR6内存标准将敲定:拒绝焊死等 提高可升级性
    近日,JEDEC对外表示,LPDDR6内存标准即将敲定,相比上代来说,速度提升会很快。关于对LPDDR6内存的预期,Synopsys将14.4Gbps的数据传输速率作为该标准的最高定义,入门速率为10.667Gbps。LPDDR6还将使用由两个12位子通道组成的24位宽通道,入门带宽可达每秒28GB,使用最快的14.4Gbps模式时,带......
  • IP Transit是一种网络服务,能够协助用户完成全球互联网络穿透,提高网络访问速度和稳定性
    IPTransit是一种网络服务,能够协助用户完成全球互联网络穿透,提高网络访问速度和稳定性。在中国境外,基于AS4837/AS10099网络平台,并通过BGP(边界网关协议)对接,IPTransit可以为用户的自有IP地址段提供全球互联网络穿透服务。BGP是一种用于在不同自治系统(AS)之间交换路由信息的协议。在......
  • [NOIP2000 提高组] 单词接龙
    传送锚点:https://www.luogu.com.cn/problem/P1019题目描述单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如beast和......
  • 东莞mes系统:提高生产效率的利器
    东莞作为中国制造业的重要基地之一,拥有众多制造企业,其中不乏一些领先的MES系统供应商。这些MES系统供应商致力于为东莞的制造企业提供智能制造解决方案,帮助企业提高生产效率、降低生产成本、提升产品质量。 MES系统在东莞的制造企业中被广泛应用,成为提高生产效率的利器。通过......
  • CSP历年复赛题-P1016 [NOIP1999 提高组] 旅行家的预算
    原题链接:https://www.luogu.com.cn/problem/P1016题意解读:用最少的加油费用到达另一个城市,中间有若干加油点,起点也可加油。解题思路:本题是一个贪心策略题:枚举每一个加油点i:1、初始加油点是起点2、汽车能跑的最大距离范围内,找到下一个更便宜的加油点的位置3、如果能找到更便......
  • Excel提高效率和二次开发
       在我们实际工作或生活,很多地方用到excel,excel可存放和管理大量数据。一般情况下,我们可以用excel内置的公司进行处理,比如常用的sum函数求和和vlookup函数进行匹配等,公式几乎可以处理日常生活的任何事情。但是有时候会遇到一些大量或重复的工作,比如要实现对某些数据进复杂......
  • 2024年CodeStar年度综合评估-提高进阶组
    T3.挑剔的美食家作为一名挑剔的美食家,小猴对食物是很讲究的,哪怕摆在面前的只有若干香蕉和苹果,小猴依然有他的讲究。已知目前已有\(n\)根香蕉和\(m\)个苹果,小猴制定了以下规则来决定自己的食用顺序:每个香蕉都被认为是独特的个体,可以理解为编号为\(1\simn\)的香蕉各不......
  • [转帖]【全网首发】一些可以显著提高 Java 启动速度方法原创
    https://heapdump.cn/article/4136322?from=pc 我们线上的业务jar包基本上普遍比较庞大,动不动一个jar包上百M,启动时间在分钟级,拖慢了我们在故障时快速扩容的响应。于是做了一些分析,看看Java程序启动慢到底慢在哪里,如何去优化,目前的效果是大部分大型应用启动时间可......
  • [NOIP2001 提高组] 数的划分
    个人博客传送锚点:https://www.acwing.com/blog/content/55495/传送锚点:https://www.luogu.com.cn/problem/P1025题目描述将整数$n$分成$k$份,且每份不能为空,任意两个方案不相同(不考虑顺序)。例如:$n=7$,$k=3$,下面三种分法被认为是相同的。$1,1,5$;$1,5,1$;$5,1,1$.问有多......