NOIP 2021 纪录
赛前
大概是我最后一次 NOIP 了。 考前被拉去训练了几天 , 毕竟5个月没怎么做题 , 思维水平大不如前 , 远远低于停课选手。 有时晚上心血来潮想学点新算法 , 然而一打开电脑就想到了省选的功亏一篑 , 和国赛现场的无限失落。想当年,我还是个初中生时,高二学长对我说 : "等你念高二时你肯定已经保送了"。 而我现在只是个老年菜鸡选手。 他奶奶的,操蛋的省选真是葬送了我4年来一切的努力啊! 越想越气,于是只能看看闲书解闷。 几天下来,除了参加训练以外啥也没干。对自己的目标也就是拿到一等奖,不要丢人。 别的啥都不指望了。
比赛
大概是考前睡得最好的一次,毕竟没啥压力。醒来神清气爽,一点也不困 (: 进入考场环顾四周,除了杨某没什么很强的人。
8点30比赛开始,先把四题都读了一遍,第一题不知道什么玩意,第二题组合计数,第三题是个传统题,看起来不是很套路,第四题题面很长,读都不想读。按照惯例先看第一题,读完题发现筛法预处理一遍然后倒着预处理一下就能线性了,甚至二分都行。 复杂度不到调和级数,想了一下没啥细节就开始写了,成为了考场第一个敲键盘的人 (: 10分钟后测了一下四个样例,都通过了,自己造了个极端数据,只要 0.2 秒。 大概率拿到100分了。
花1分钟读完第二题题意,看了一下样例解释,感觉做法已经不能更明显了。 直接线性预处理阶乘,阶乘逆元,然后动态规划一下,状态大概是4维,纪录权值和方案数的乘积,因为方案数的分子是定值所以可以最后乘上去。 另外还要预处理输入每个数的次幂,否则用快速幂会多一个log,这样常数就太大了。复杂度 O(N^3 * M) , 可以轻松通过。 然后就开始疯狂敲键盘,写到转移的时候发现不对劲,好像题读错了。十分紧张,害怕自己第二题不会身败名裂。 想了几分钟发现基于之前思路,把第四维状态压起来就行了,因为进位不超过5,所以只要开 2 ^ 5。 大概20分钟后,两个样例都过了。
此时比赛进行了1小时,而我已经拿到了200分,一等是肯定没问题了 (:
看了一下第三题,把方差化成和平方减去平方和,看了一下式子,感觉不好直接做。想了十多分钟,发现了一个重要性质 : 操作一个数相当于是交换了差分数组的相邻两项,所以差分数组元素的集合是永远不变的。 那直接枚举排列就能得到20分。虽然很少不过至少有分了。然后发现状压动态规划能优化到 O(2 ^ N * N * S)。这样就有32了。 又花了10分钟写了一下这个做法。写完又读了几遍题,发现另外一个性质 : 差分数组是单谷的。 不过不知道有啥用。就没仔细想。 读了会第四题,突然想到第三题可以模拟退火! 不过退火的那个求概率函数忘了。 真是见了鬼了。 写了好几次一直写不对,自己意淫了几个函数跑出来都不理想。 白白葬送了40分。 出题人竟然把这种骗分能获得高分的题目出进联赛,我偏偏不会写,真是气死我了。
最后看了一眼第四题,发现很难模拟,不过勉强能写,花了半小时完成了这个程序。 大概有24分。好像还有20分可以写写,不过由于太久不训练码力不行,就多写了8分 (最后还挂了) (:
然后就没有继续拿分,检查了一下每道题程序,毕竟省选因为粗心造成的失误给我留下了心理阴影 (:
我的最终成绩是100 + 100 + 32 + 24 = 256 分 ,这个辣鸡成绩排江苏省第28名 ,比去年退步了11名。我校俞神和王大佬坚持高水平发挥,吊打全省。 我这个小菜鸡和杨某排校内第三。虽然是个没啥意义的成绩,不过毕竟超额完成赛前目标,比一等分数线高了106分。 所以还是非常非常满意的 (:
比赛总是打一场少一场的, 接下来每场竞赛也都当娱乐放松了 , 好好享受OI给我带来的最后的乐趣吧!