首页 > 编程语言 >铺地毯---算法题

铺地毯---算法题

时间:2023-09-09 10:03:52浏览次数:36  
标签:int 样例 --- v1 算法 ms 编号 地毯

题目描述

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

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

输入格式

输入共 铺地毯---算法题_#include_04 行。

第一行,一个整数 铺地毯---算法题_ci,表示总共有 铺地毯---算法题_ci 张地毯。

接下来的 铺地毯---算法题_ci 行中,第 铺地毯---算法题_数据_08 行表示编号 铺地毯---算法题_#include_09 的地毯的信息,包含四个整数 铺地毯---算法题_ci_10,每两个整数之间用一个空格隔开,分别表示铺设地毯的左下角的坐标 铺地毯---算法题_ci_11 以及地毯在 铺地毯---算法题_数据_12 轴和 铺地毯---算法题_数据_13 轴方向的长度。

铺地毯---算法题_#include_04 行包含两个整数 铺地毯---算法题_数据_12铺地毯---算法题_数据_13,表示所求的地面的点的坐标 铺地毯---算法题_ci_17

输出格式

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

如下图,铺地毯---算法题_数据_02 号地毯用实线表示,铺地毯---算法题_ci_20 号地毯用虚线表示,铺地毯---算法题_数据_21 号用双实线表示,覆盖点 铺地毯---算法题_ci_22 的最上面一张地毯是 铺地毯---算法题_数据_21 号地毯。

铺地毯---算法题_#include_24

【数据范围】

对于 铺地毯---算法题_#include_25 的数据,有 铺地毯---算法题_数据_26
对于 铺地毯---算法题_#include_27 的数据,铺地毯---算法题_数据_28
对于 铺地毯---算法题_#include_29 的数据,有 铺地毯---算法题_ci_30, 铺地毯---算法题_ci_31

#include <iostream>
#include <vector>
#include <typeinfo>

using namespace std;

int n,x,y;


struct MyStruct
{
    int x, y, w, h;
} mystruct;

vector <MyStruct> v1;

int main()
{
    cin >> n;

    MyStruct ms;

    for (int i = 0; i < n; i++)
    {
        cin >> ms.x >> ms.y >> ms.w >> ms.h;
        v1.push_back(ms);

    }
    cin >> x >> y;

    int num = 0;
    bool falg = false;


    for (vector<MyStruct>::reverse_iterator i = v1.rbegin(); i != v1.rend(); ++i, ++num)
    {
        if (falg)
        {
            break;
        }
        if (x >= (*i).x && x <= ((*i).x + (*i).w)  && y >= (*i).y && y <= ((*i).y + (*i).h) )
        {
            cout << v1.size() - num;
            falg = true;
        }
    }


    if (!falg)
    {
        cout << "-1";
    }

    return 0;
}

标签:int,样例,---,v1,算法,ms,编号,地毯
From: https://blog.51cto.com/u_16003019/7417432

相关文章

  • 无涯教程-JavaScript - IMLOG2函数
    描述IMLOG2函数以x+yi或x+yj文本格式返回复数的以2为底的对数。可以从自然对数计算复数的以2为底的对数,如下所示-$$\log_2(x+yi)=(log_2e)\ln(x+yi)$$语法IMLOG2(inumber)争论Argument描述Required/OptionalInumberAcomplexnumberforwhichyouwantth......
  • 配置文件加载模块-单例配置类设计
    classConfig{有我们单例模式所需要的一些信息,首先向外提供一个统一的访问接口,然后在类内实例化一个访问对象//使用的是懒汉模式,涉及到线程安全问题,用的时候才去进行加载,所以要加锁private:staticstd::mutex_mutex;//互斥锁,来保护对象实例化的一个过程Config*_instance;//......
  • Java从入门到精通-数组(二)
    4.数组的基本操作数组的基本操作包括遍历数组、填充替换数组元素、对数组进行排序、复制数组以及查询数组中的元素。•4.1遍历数组遍历数组是访问数组中所有元素的过程,通常使用循环完成。使用 for 循环遍历数组:int[]numbers={1,2,3,4,5};for(inti=0;i<numbers.l......
  • 智慧工地可视化解决方案-智慧工地源码
    智慧工地是指运用信息化手段,围绕施工过程管理,建立互联协同、智能生产、科学管理的施工项目信息化生态圈,并将此数据在虚拟现实环境下与物联网采集到的工程信息进行数据挖掘分析,提供过程趋势预测及专家预案,实现工程施工可视化智能管理,以提高工程管理信息化水平,从而逐步实现绿色建造和......
  • 深入解析Wi-Fi 6与Wi-Fi 5的技术差异
    摘要:Wi-Fi6(802.11ax)已经成为无线网络技术领域的最新标准,相较于前一代Wi-Fi5(802.11ac),它带来了许多重大的改进和创新。本文将重点介绍Wi-Fi6与Wi-Fi5在速度、容量、功耗和连接性能等方面的区别,以及Wi-Fi6对未来无线网络的影响。引言:Wi-Fi技术的发展始终致力于提供更快、更可......
  • JS基础-分支语句
    分支语句是流程控制语句当中的一种可以简单理解为是一种控制条件,当达到某个条件时,执行相应的代码IFIF多条件分支例如:当变量a>b时,则执行语句块1,如果a等于b时,则执行语句块2;最后,如果a>b时,则执行语句块3ifelse语句当中的语句块一般具有排斥作用。如果执行了......
  • 数据结构-封装队列
    list_queue.h#ifndefLIST_QUEUE_H#defineLIST_QUEUE_H#include<stdio.h>#include<stdlib.h>#include<stdbool.h>#defineTYPEint// 节点结构typedefstructNode{ TYPEdata; structNode*next;}Node;// 设计链式队列结构typedefstructList......
  • Linux环境编程-库
    一、库:库文件是目标文件的集合,可以被其他代码调用,把代码封装成库文件后方便使用、方便管理,安全性高、保密性强静态库:就是目标文件的集合,当调用静态库时,编译器会把静态库的所有的二进制指令拷贝到最后的可执行文件中优点:运行速度比共享库要快,运行时不需要依赖静态库文件。(它......
  • C++系列三:QT-Quick
    目录前言:理论:案例:前言:其实和我接触过的Flutter,有异曲同工之处。记住F1,其实就ok了。参考链接:官方、教程1、教程2、教程3、教程3理论:案例://main.cpp:QQmlApplicationEngineengine;engine.load(QUrl(QStringLiteral("qrc:/qt/qml/qtquickapplication1/main.qml")));if(e......
  • [代码随想录]Day40-动态规划part08
    题目:139.单词拆分思路:单词就是物品,字符串s就是背包,单词能否组成字符串s,就是问物品能不能把背包装满。拆分时可以重复使用字典中的单词,说明就是一个完全背包!动规五部曲分析如下:确定dp数组以及下标的含义:dp[i]:字符串长度为i的话,dp[i]为true,表示可以拆分为一个或多个在字......