洛谷P1003 铺地毯

原题链接
思路:
这题是在模拟的关卡里,我网上找了半天对模拟还不是很理解,我觉得说的好点的就是这个:

在自然界和日常生活中,许多现象具有不确定的性质,有些问题甚至很难建立数学模型,
或者很难用计算机建立递推、递归、枚举、回溯法等算法。在这种情况下,一般采用模拟
策略。所谓模拟策略就是模拟某个过程,通过改变数学模型的各种参数,进而观察变更这
些参数所引起的过程状态的变化,由此展开算法设计。

这题按照题目所给的输入,先输入n,然后我是将每组(a,b,g,k)存入结构体数组中,然后输入x,y。将结构数组从下标n-1遍历满足(x, y)就输出序号,否则输出-1.

struct Data {
	int x;
	int y;
	int a;
	int b;
};

int main() {
	int n;
	sfd(n);
	Data* data = new Data[n];
	for( int i=0; i<n; i++ ) {
		sfd(data[i].x);
		sfd(data[i].y);
		sfd(data[i].a);
		sfd(data[i].b);
	}
	int x, y, i;
	sfd(x);
	sfd(y);
	for( i=n-1; i>=0; i-- ) {
		if( x>=data[i].x&&x<=(data[i].x+data[i].a)&&y>=data[i].y&&y<=(data[i].y+data[i].b) ) {
			pfd(i+1);//i+1就是地毯编号
			break;
		}
	}	
	if( i<0 ) {
		pfd(-1);
	}
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值