[NOIP2011]铺地毯

简单说两句

作者:后端小知识

CSDN个人主页后端小知识

🔎GZH后端小知识

🎉欢迎关注🔎点赞👍收藏⭐️留言📝

[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;
}

【都看到这了,点点赞点点关注呗,爱你们】😚😚

抽象工厂  引导关注

结语

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

💬

作者:后端小知识

CSDN个人主页后端小知识

🔎GZH后端小知识

🎉欢迎关注🔎点赞👍收藏⭐️留言📝

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不正经小新

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值