[NOIP2011]铺地毯

简介: [NOIP2011]铺地毯

[NOIP2011]铺地毯这是一道比较简单的noip真题,我们稍微转点弯,直接模拟做就是,我们先来看看题目描述:

题目链接:[NOIP2011]铺地毯

思路

我们可以发现直接暴力模拟是不行的,那么可以转换下思路,它既然是要求覆盖某点的最上一层的地毯编号,那么没有覆盖的我们可以不用求了。

怎么做呢:判断地毯范围是否覆盖那个点,若覆盖则记录,具体的我们直接看代码吧

我们来看看成功AC的代码吧:

#include<bits/stdc++.h>
using namespace std;
int n;
struct Nd{
    int a,b,g,k;
}rug[100010];
int x,y;
int ans=-1;
int main(){
    cin.tie(0);
    ios::sync_with_stdio(false);
    cin>>n;
    for(int i=1;i<=n;i++){
        int a,b,g,k;    cin>>a>>b>>g>>k;
        rug[i]={a,b,g,k};//先用结构体把地毯存下来,才方便后面的处理
    }
    cin>>x>>y;
    int x1,x2,y1,y2;
    for(int i=n;i>=1;i--){//倒着循环会快点点
        //地毯铺的范围
        x1=rug[i].a, x2=x1+rug[i].g;
        y1=rug[i].b, y2=y1+rug[i].k;
        //如果答案在范围内,记录
        if(x1<=x&&x2>=x&&y1<=y&&y2>=y){ans=i;break;}
    }
    cout<<ans;
    return 0;
}


相关文章
|
7月前
[NOIP2012]借教室
[NOIP2012]借教室
37 0
|
6月前
|
C++
【洛谷 P1085】[NOIP2004 普及组] 不高兴的津津 题解(打擂台法)
**NOIP2004 普及组问题:津津的日程检查。津津每日上课时间若超8小时会不高兴。输入7行代表一周课程,输出最不高兴的日期(1-7)或0。示例输入/输出:5 3 6 2 7 2 5 3 5 4 0 4 0 6 -&gt; 3。使用C++代码通过遍历计算最大上课时间并找到对应日期。**
43 0
1314:【例3.6】过河卒(Noip2002)
1314:【例3.6】过河卒(Noip2002)
153 0
|
定位技术 C++
洛谷P1600 [NOIP2016 提高组] 天天爱跑步
洛谷P1600 [NOIP2016 提高组] 天天爱跑步
|
机器学习/深度学习 人工智能
1320:【例6.2】均分纸牌(Noip2002) 2020-11-30
1320:【例6.2】均分纸牌(Noip2002) 2020-11-30
121 0
|
测试技术 C++
第十二届蓝桥杯省赛 C++ B组 - 砝码称重
第十二届蓝桥杯省赛 C++ B组 - 砝码称重
127 0
|
测试技术 C++
第十二届蓝桥杯省赛第二场 C++ B组 - 完全平方数
第十二届蓝桥杯省赛第二场 C++ B组 - 完全平方数
86 0
|
机器学习/深度学习
2018NOIP集训-5 货物运输(倍增)
2018NOIP集训-5 货物运输(倍增)
100 0
2018NOIP集训-5 货物运输(倍增)
|
开发工具
贤鱼的刷题日常-P1021 [NOIP1999 提高组] 邮票面值设计-题目详解
🍀学习了解P1021 [NOIP1999 提高组] 邮票面值设计
118 0
|
人工智能
蓝桥杯2016届省赛B组(凑算式)
题目描述 B DEF A + — + ——— = 10 C GHI 这个算式中AI代表19的数字,不同的字母代表不同的数字。 比如: 6+8/3+952/714 就是一种解法, 5+3/1+972/486 是另一种解法。 这个算式一共有多少种解法? 注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
106 0
蓝桥杯2016届省赛B组(凑算式)