洛谷试炼场---普及练习场

    xiaoxiao2021-03-25  159

    洛谷试炼场---普及练习场

     

    简单的模拟

    1.p1003 铺地毯

     

    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

     

     

     

    2.p1017 进制转换

     

    NOIP2000 提高组 复赛 进制转换

    1.该题难在弄懂样例,负进制,余数为>=0

    2.试了一下,程序自带的/,%发现对负进制转换无用,得自个写一套。

    3.弄懂了-15转-2进制,余数>=0,商正负都可以。模拟如下:

    -15除-2=8余1

    8除-2=-4余0

    -4除-2=2余0

    2除-2=-1余0

    -1除-2=1余1

    -15=110001

    4.准备写chu,yu两个函数,对照上述模拟,写出了。

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

    耗时:弄懂题意,模拟成功15分钟,编码20分钟

    总耗时:35分钟

    难度:中等。

     

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

    //2000 进制转换 #include <stdio.h> int chu(int a,int b){//除的结果,a是整数,b是负进制     int ans;     int a1,b1;     b1=b*(-1);     if(a>0){//大于0         if(a

    转载请注明原文地址: https://ju.6miu.com/read-35606.html

    最新回复(0)