[NOIP2011]铺地毯

Posted cq.tiancx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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;

谢谢你的阅读,由于作者水平有限,难免有不足之处,若读者发现问题,还请批评,在留言区留言或者私信告知,我一定会尽快修改的。若各位大佬有什么好的解法,或者有意义的解法都可以在评论区展示额,万分谢谢。
写作不易,望各位老板点点赞,加个关注!

以上是关于[NOIP2011]铺地毯的主要内容,如果未能解决你的问题,请参考以下文章

[NOIP2011]铺地毯

铺地毯 2011年NOIP全国联赛提高组

Noip2011 提高组 Day1 T1 铺地毯

洛谷P1003 [NOIP2011提高组Day1T1]铺地毯

luoguP1003 铺地毯 题解(NOIP2011)

洛谷 1003 NOIP2011 D1T1 铺地毯