【NOIP2016】普及组复赛赛后总结

虽然真实成绩还没出来,但也在一个OJ上自己测了(民间数据):

https://www.luogu.org/contest/show?tid=1265

(比赛已关闭,但题是可以交的)

PS:带蓝色是题解链接

以下总结下普及组考后各种恶心,想吐,难受,想哭的东西:

1.第一题,额……不用说,只是为了不打击我们脆弱的心灵而已。


2.第二题,辛辛苦苦写了100行,调了1小时的代码只得了50分……(。•ˇ‸ˇ•。)不服!一个pascal的11行代码骗了60分(请欣赏):

var
x,y:string;
i:integer;
begin
readln(x);
readln(y);
for i:=1 to 4 do
 if(x[i]<>x[8-i+1])
  then begin writeln(0);exit;end;
writeln(1);
end.
虽然是学的C++,但这种代码还是没问题的,他只是完成60%的子任务,早知道我也只看第一个子任务了,我的10分,❤疼……

还是把自己看高了,信心满满地打了一大篇……还不如完成子任务,so,以后还是自持点……好好骗分就够了


最后两道就极其爽……猥琐!了,一道爆空间,一道爆时间……


3.我很伤心(;′⌒`)整整30分,只是因为不会算空间(狂扇自己巴掌)!请看暴搜代码:

#include<cstdio>
#include<cstring>
#define H 86400
#define MAXN 350//就是这里
int n;
int t[MAXN+5],na[MAXN+5][MAXN+5],p[MAXN+5];
bool f[MAXN+5];
int main()
{
    //freopen("port.in","r",stdin);
    //freopen("port.out","w",stdout);
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        int sum=0;
        scanf("%d%d",&t[i],&p[i]);
        for(int j=1;j<=p[i];j++)
        {
            scanf("%d",&na[i][j]);
            if(!f[na[i][j]])
            {
                sum++;
                f[na[i][j]]=true;
            }
        }
        int tb=t[i]-H;
        for(int j=1;j<=i;j++)
        {
            if(t[j]<=tb)
                continue;
            for(int k=1;k<=p[j];k++)
                if(!f[na[j][k]])
                {
                    sum++;
                    f[na[j][k]]=true;
                }
        }
        printf("%d\n",sum);
        memset(f,false,sizeof(f));
    }
    //fclose(stdin);
    //fclose(stdout);
    return 0;
}

其他的不想多说只是看看第四行,350……知道我怎么算的空间吗?

printf("%d",(sizeof(t)+sizeof(na)+sizeof(p)+sizeof(f))/1024);
只除了一个1024!!然而,前面是字节!字节!字节!(B)

甜辣卤!我其实一直在想这个问题,这样好大啊,但,我却一直在跟KB较真,事实上KB的确只需要除以一个1024即可,请允许我再说一遍:前面是字节!字节!字节!(B) -->前面是字节!字节!字节!(B)(重要的事情说9遍)

所以……要除2遍1024!!于是我们愉快地失去了30分……烦啊!!


4.暴搜嘛,然而还是少了5分……大家先看看这样一道题:

输入3个数,如果它们是升序排列,输出yes,反之输出no

好简单啊,好的,请看我的:

if(x[a]<x[b]&&x[a]<x[c]&&x[a]<x[d]&&x[b]<x[c]&&x[b]<x[d]&&x[c]<x[d])//不用在意用的数组
			printf("yes");
你知道咩(反正我当时不知道(再次扇巴掌)),事实上直接这样就行了:

if(x[a]<x[b]&&x[b]<x[c]&&x[c]<x[d])
			printf("yes");
好像也无伤大雅……这道题是的, 如果改成了:有多组数据(<100^4)总时间限制1S,用第一种显然会慢很多(所谓小流积大河),而后一种是较快的……

so考试这道题爆搜四重循环,让我们算算,(6-3)*100^4……呵呵呵呵我就呵呵。于是又少了5分(一个点)。


最后,这次一共不该失的分有45分!!整整45分啊……(ㄒoㄒ)~~


ps:成绩出来才发现事实上数据很水,第二题我竟然得了70分……

                                                                                                                                                                           By WZY

转载于:https://www.cnblogs.com/LinqiongTaoist/p/7203749.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值