[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]铺地毯的主要内容,如果未能解决你的问题,请参考以下文章