洛谷P1003
洛谷P1003
题目大意
简而言之就是在坐标轴上铺地毯,根据输入的坐标将地毯放在坐标轴上,然后最后给出一个坐标,找到铺在这个坐标上最上面的地毯编号
Train of thought
首先我们应该找到每个矩阵对应包含的范围,这样我们才能去寻找目标点最上方的矩阵
这里我们采用枚举的方式,创建一个结构体,其包含的是对应矩阵的范围
struct Matrix{
int x1,x2;
int y1,y2;
};
遍历整个数组,如果发现目标点在矩阵范围内,就把对应得编号记下来
Time complexity
输入最多需要104,每次输入处理两次,然后遍历整个数组一次,每次遍历比较一次,总的时间复杂度大概为2*104 + 10 ^4,就是0(n)
综上所述,代码如下:
#include<iostream>
#include<utility>
#include<vector>
using namespace std;
typedef long long ll;
#define fi(a,b) for(int i = a; i <= b; ++i)
#define fr(a,b) for(int i = a; i >= b; --i)
using pii = pair<int,int>;
struct Matrix{
int x1,x2;
int y1,y2;
};
vector<Matrix> vec;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int n;
cin >> n;
while(n--)
{
Matrix temp;
cin >> temp.x1 >> temp.y1;
int q,w;
cin >> q >> w;
temp.x2 = temp.x1 + q;
temp.y2 = temp.y1 + w;
vec.push_back(temp);
}//处理范围
int r,w;
cin >> r >> w;
int result = -1;
fi(0,vec.size()-1)
{
if(vec[i].x1 <= r && r <= vec[i].x2 && w >= vec[i].y1 && w <= vec[i].y2)
result = i;//如果满足条件,就记下对应得编号
}
result++;//因为编号是从0开始,所以最后要加一
if(result == 0)
cout << "-1" << endl;
else
cout << result << endl;
return 0;
}
优化:
考虑从后往前遍历,遇到满足条件的就直接跳出,这样可以有效地降低时间复杂度
感谢大家的阅读,如果觉得还不错就点个赞吧ヾ(≧▽≦*)o
洛谷P1003的更多相关文章
- 洛谷P1003 铺地毯 noip2011提高组day1T1
洛谷P1003 铺地毯 noip2011提高组day1T1 洛谷原题 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n ...
- 洛谷 P1003 铺地毯
嗯.... 一道比较水的模拟题.. 刚拿到题的时候被它的数据范围吓到了,二维数组不可能开那么大啊,可是一边做发现测试数据太水 ... 先看一下题吧... 题目描述 为了准备一个独特的颁奖典礼,组织者在 ...
- (水题)洛谷 - P1003 - 铺地毯
https://www.luogu.org/problemnew/show/P1003 一开始觉得是用树套树来区间修改单点查询,但是发现空间不够开. 看了题解发现这个是静态的问题,而且只问一个点的结果 ...
- 洛谷P1003 [NOIP2011提高组Day1T1]铺地毯
P1003 铺地毯 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号 ...
- AC日记——铺地毯 洛谷 P1003(水水水水水~)
题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...
- [NOIP2011] 提高组 洛谷P1003 铺地毯
题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...
- 洛谷P1003铺地毯(提高组)
题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n. 现在将这些地毯按照编号从小到大的顺序平行于 ...
- 洛谷—— P1003 铺地毯
https://www.luogu.org/problem/show?pid=1003 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形 ...
- 洛谷P1003 题解
题面 思路一:纯模拟.(暴力不是满分) 思路: 1.定义一个二维数组. 2.根据每个数据给二维数组赋值. 3.最后输出那个坐标的值. 思路二(正规思路): 逆序找,因为后来的地毯会覆盖之前的,一发现有 ...
- 一个蒟蒻的解题过程记录——洛谷P1003 铺地毯
这到题算是我“火线回归”后码的第一道题,病好了心情不错,发篇博客分享一下 目录: ·题目描述 ·题目分析 ·解题思路 ·代码实现 ·总结 ·题目描述: 为了准备一场特殊的颁奖典礼,组织者在会场的一片矩 ...
随机推荐
- gRPC入门学习之旅(八)
gRPC入门学习之旅(一) gRPC入门学习之旅(二) gRPC入门学习之旅(三) gRPC入门学习之旅(四) gRPC入门学习之旅(五) gRPC入门学习之旅(六) gRPC入门学习之旅(七) 3. ...
- 使用XCA自制CA证书并签发https证书
序言 本文目的是使公司内网部署的Web可以使用https的方式访问 现有部署的系统有用域名访问,有用IP访问,但都是用http的方式 所以打算在公司内网部署统一的CA证书,并可以自己签发对应的域名和I ...
- 30分钟带你搞定Dokcer部署Kafka集群
docker网络规划 docker network create kafka-net --subnet 172.20.0.0/16 docker network ls zookeeper1(172.2 ...
- 磁盘空间满了报错cannot create temp file for here-document: No space left on device
如下:虚拟机设置的存储空间是20G,.目前用到100%了.执行命令会报错设备没有空间 我想删除镜像释放空间,也无法操作 分级找到文件,但是不知道删除哪个 退出的容器都找不到了 把昨天下午弄的删了 容器 ...
- EasyUI组件新增方法与事件
以window组件为例 事件 扩展事件直接定义在options中,可以再初始化组件时定义事件,也可以使用时临时定义事件.这里是组件初始化后在添加的. 使用情景:添加,插入功能.主界面表格分别点击添加和 ...
- vue3:modal组件开发
项目环境 @vue/cli 4.5.8 最终效果 需求分析 显示/隐藏 点击遮罩层能否关闭 宽度和zIndex自定义 标题栏 -显示标题和关闭按钮 主体 底部 -内置取消和确定功能 前置知识 tele ...
- Laravel 模块化开发模块 – Caffienate
Laravel多模块配置 1. 安装对应版本"caffeinated/modules" composer require caffeinated/modules 相应版本号 L ...
- Android 13 - Media框架(32)- ACodec(八)
关注公众号免费阅读全文,进入音视频开发技术分享群! 拖了好久都没有更新,前面写的东西都有些忘了,回过头来再看之前写的内容,觉得有很多地方写的不好,或者说现在又有了新的理解,想要重新修改但是需要修改的内 ...
- Android启动过程-万字长文(Android14)
在计算机启动过程和Linux内核Kernel启动过程介绍了计算机启动和内核加载,本篇文章主要介绍Android系统是如何启动的. 一.Android启动流程 Android系统的启动流程与Linux接 ...
- Dump Rtmp Stream To FLV File (从Rtmp流保存为FLV文件)
一.准备工作 搭建本地rtmp服务: https://www.cnblogs.com/doudouyoutang/p/6602430.html 获取使用到的库,openssl 和 librtmp 参考 ...