luogu1003:铺地毯:逆向查找:NOIP2011提高组T1

97 篇文章 1 订阅
93 篇文章 0 订阅

题目链接:该题是luogu试炼场的2-1:T1


试炼场2-1题解包:

2-1简单模拟 
题号题目备注
1003铺地毯逆向查找
1067多项式输出分段模拟
1540机器翻译循环队列
1056排座椅统计排序
1328生活大爆炸版石头剪刀布暴力模拟
1563玩具谜题环形思维

题目大意:

 

在平面直接坐标系内,有n块方形地毯,依次铺上去,求某个点最上面一层的地毯编号


解题思路:

1 主要了解平面直角坐标系,用桶来做的话,数组没办法开;

2 反向模拟就可以了:从最后一块地毯往前数,先覆盖到该点的,就是答案!


上代码:

//luogu试炼场2-1:1:1003:铺地毯
//2011提高组T1:逆向查找 

#include<cstdio>
int n,x,y;
int a[10005],b[10005];//地毯左下角的坐标(a,b); 
int g[10005],k[10005];//地毯右上角的坐标(g,k); 

int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)//存储四个角的信息 
	{
		scanf("%d %d %d %d",&a[i],&b[i],&g[i],&k[i]);
		g[i]+=a[i];
		k[i]+=b[i];
	}
	scanf("%d %d",&x,&y);//目标点 
	for(int i=n;i>=1;i--)//逆向查找,只要在框内,就结束了 
	{
		if(x>=a[i]&&x<=g[i]&&y>=b[i]&&y<=k[i])
		{
			printf("%d",i);
			return 0;
		}
	}
	printf("-1");
	return 0 ;
} 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值