NOIP2011 提高组 复赛 day1 carpet 铺地毯

NOIP2011 提高组 复赛 day1 carpet 铺地毯

1.读完题目,对样例1进行模拟,进一步明白题目意图。

2.地毯数据采用结构体数组,处理起来比较方便。

3.查询点上地毯,采用自上而下方式,找到break。

4.若没有找到,输出-1

5.很快样例通过,提交AC


耗时:20分钟(从拿到题目开始计时)

难度:简单

附上AC代码,编译环境Dev-C++4.9.9.2

//2011 carpet
#include <stdio.h>
struct data{
    int a;
    int b;
    int g;
    int k;
}car[10000+10];
int main(){
    int x,y;
    int n;
    int i;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        scanf("%d%d%d%d",&car[i].a,&car[i].b,&car[i].g,&car[i].k);
    scanf("%d%d",&x,&y);
    for(i=n;i>=1;i--)
        if(x>=car[i].a&&x<=car[i].a+car[i].g&&y>=car[i].b&&y<=car[i].b+car[i].k)
            break;
    if(i==0)
        printf("-1\n");
    else
        printf("%d\n",i);
}

6.后记:易错地方,

6.1开了比较大的二维数组,一个不当心,内存溢出。

6.2自底向顶分析地毯,一不小心,耗时,注意,题中要求的是最靠上的地摊。for(i=n;i>=1;i--)//所以i=1效率低,应i=n才是正解。

2007-1-19



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值