NOI 2022 考试总结
Day 1
Day 1 前一晚的感觉就不太好。考前又兴奋跃跃欲试,又有点紧张,完全控制不住自己的脑子。晚上睡觉的时候,呆在被子里面莫名燥热,又不敢随便掀开怕感冒,还被热醒了一次。
第二天就是 Day1 的考试呗。刚刚进场的时候,发现时间已经到了 7:50。之前感觉很远的考试马上撞到了我的面前,心就悬起来了。
8:00 开始看题。首先必须吐槽这个题面设置,总共读了 15min 才勉强把三道题题目大意弄明白,T3 读得人头昏脑涨。一遍读下来的感觉是:
-
T1 应该就是送分题吧。
-
T2 一看没有什么明确想法,这个操作看起来复杂但是性质应该还比较不错?可以尝试吧。
-
T3 应该就是送给人骗分的,部分分设置看起来还比较能骗。
于是先着手 T1。区间绝对众数,脑子里一下想起来的就是“摩尔投票”的维护方法。出发点本来没有大问题,然而当我大致地勾勒出了算法的过程之后,我并没有仔细思考细节就开始写代码。毫不意外地,编写过程中我遇到了相当多困难——比如必须检查得到的数是否为真正的绝对众数,这需要用到线段树合并,而我压根没想到过。边想边写,从 8:30 一直写到了 9:30,代码还写得挺乱的。幸好平时写代码的能力在场上还没有完全丢掉,写出来之后调了 10min 就通过了所有样例。
对着数据表一看,这大样例怎么这么弱?连删除的情况都没有?心里一下子就慌了,正确性根本没法保证。只能手造一下小范围的数据测试,跑出来......呃,至少没有出错。此时大约已经 10:00 了,节奏不是很对啊。当时我突然想起来,如果我已经用了线段树合并维护出现次数信息,查众数根本用不到摩尔投票的信息啊!然而现在容不得我修改了,即便它应该相当的好写。
一边疯狂暗示自己 T1 应该没有问题,一边硬着头皮开了 T2。当时思考了半天,连如何检查序列都没有想明白——考试之后听评讲,才发现我的思路压根和正解思路不搭边。想到了 10:50 觉得不对劲,转头开始思考 T3 的骗分。此时因为读题时间太过久远,我又没有重新阅读题面直接开始思考,就漏掉了题意的细节。直接想了一个点分治的想法,貌似可以得到 40pts,就开始写。写完了都开始调试了,才发现自己的做法根本行不通,后续修正也不太现实。
两面碰壁之后,时间已经到了 11:30,有效的时间只剩下 1h 左右了。没办法,只能开始写暴力。气恼的是,T2 的暴力虽然很快写出来了,但是调试半天竟然始终无法通过样例二,怎么也没有办法找出问题。回头看 T3 的暴力,\(O(n^3)\) 的预处理竟然一分也得不到 ,之后就需要换根 DP 了,我没把握。最后只能回头检查 T1,然而效果也不好。没有办法生成随机数据,意味着我连程序的正常运行都很难保证,只能依靠阅读代码检查,相当低效。
比赛最后在麻木的等待中结束。出来之后,听见周围的人都觉得难,心里还借此安慰了一下自己。查分时发现自己 T1 还挂了 25pts,又听说别人都发挥得比较稳健,才真的明白自己是真的炸了。
不可谓不伤心。
Day 2
Day 2 就已经完全不抱希望了,心里只想着要努力发挥出正常水平。
这样的心态对于考试来说会好很多,进场时心里不像 Day 1 那么紧张了。阅读题目,感觉综合难度确实比 Day 1 高,但是阅读难度下降很多,至少 T1 看起来不太水。
仍然顺序开题。既然感觉没法直接解决,那就先对着部分分思考。为了避免想 Day 1 那样花大把时间思考无果,我将时间控制在 15min 左右,如果还没有进展就先写代码保分数。
然后,看到这个部分分直接就哭死了,\(k=0\) 居然都给了 42pts,再加上一个简单的暴力就可以得到 80pts。然而,因为没有结合 \(k\) 的条件接着分析暴力算法,我始终难以突破最后 20pts,只能暂时接受这个结果。在 10:00 左右,我完成了 80pts 的程序和相应的检查,并决定暂时放下 T1。
接着看 T2。这种分析性质的题目我向来不擅长,因此心里也挺慌的。思考了一会儿,只观察到了“所有值 \(a\) 取 \(V\) 中值”的性质,暂时只完成了 28pts 的暴力搜索,在 10:30 时放下了 T2 接着写 T3 的暴力。T3 很离谱,想了半天却想不到任何非暴力算法的可能性,连 \(k=3,\sum q\) 较大的情况都束手无策。这相当于是正告我 T3 是块硬骨头,所以我在 11:00 的时候也放弃了。
想了一想,目前最有可能获得突破的其实是 T2,于是我又回头思考 T2。情况确实如此,我对 T2 的大方向心知肚明,因此我虽然分析能力不达标,却也绞尽脑汁,针对特殊性质猜了几个有用的结论 。这直接辅助我得到了 \(n,m\) 较小时 A 性质的部分分。另外的 B 性质其实也得到了正确的思路,但是设计 DP 过程中没有考虑清楚费用的计算方式,导致我误判了正确性,放弃了这个思路,有一点可惜。在 12:10 的时候,我放下了 T2 回头检查 T1 的正确性,并尝试写出 \(k=1\) 的部分分。很可惜,是假的。但是我得到了一个数据生成器,对于检查来说也算不错了。
比赛末尾都没什么事情了,结束之前也便轻松许多。下午查分,发现写的分数一分没挂,心里挺高兴的。即便发现自己实际上就打了一个大众分,我也接受了,至少打出了一般水平。
总结
个人能力
老实说,从能力角度来说,我还有很多欠缺的地方。比如两天 T2 都是我不擅长的分析型题目,D1T2 更是连一个像样的分析都没有拿出来。考虑到 NOI 系列比赛题目风格的转变,这是我必须弥补上的短板。
(幸好省选 Day 1 在风格上和旧一点的 NOI 比较接近,不然我在那个时候就寄了)
对于越来越难的题目来说,我的水平可能还不达标,也许我最好早生几年。这样类型的题目大多接近于 CF/AT 的题目,而我做的不算多。从这一点来看,我需要多加入 CF/AT 题目以及其它偏重分析的题目的练习。
一道题思维时间太长、半天找不到切入口也是一个大问题。这当然和我积累不够、对于常见思路不熟悉有关系——以前我倾向于将一道题目研究精深充分吸收,这当然是好的;但是很多东西不见得都可以“触类旁通”,能够通过广刷题多积累一些成型的思路也有益处,尤其需要注意的就是自己没有想到的东西,即便我认为我多花点时间能够想到。如果可以的话,CF/AT 的比赛也应该多加入训练,有助于压缩思考时间。
另一方面,也可以考虑引入一些数学知识的学习,侧面辅助一下。毕竟我个人感觉现在 OI 题目的想法接近于“抽象”——二话不说,给个对象就让你开始分析性质 。总是尝试借助具体的工具、具体的对象来分析,相对来说可能就不讨巧了。
高一一年的训练更像是做了基本功的“量变”,希望我高二一年可以将之前所学串联起来达到“质变”吧。
赛前准备
我必须说,从知识和比赛策略的角度来看,我复习得不可谓不充分。即便是略显偏门的树同构我都拉出来复习过的。
然而,这一次准备最大的漏洞,就出在针对考试心态的准备上。考前心态其实有一点乱,又希望自己可以取得好成绩,心底下又担心自己的能力不足,最后到考试上就变成了 Day 1 的紧张和焦虑。考前心态我也尝试过调整,不过效果不佳,闲下来的时候我总无法阻止自己去想着考试结果的事情。在考场上就完全被糟糕的心理支配而无法控制了。
平时的模拟赛对于心态几乎没有训练过。模拟赛从态度上应该当做正式比赛来打,这样才能模拟正式比赛的心态,也可以训练对于心态的把控能力。
比赛过程
首先,自然是比赛过程中千万不能太紧张。放轻松。这个和个人心态关系密切,所以从我的角度来说,既然 OI 已经进入了最后一年,与其担心自己什么时候会退役,不如做到享受每一次比赛,不管是模拟赛还是正式赛。我没有办法控制比赛结果,但是我最好能做到问心无愧,心满意足地离开 OI。反过来看,一旦紧张焦虑,考场上我会做出来什么根本无法预料,参考 Day 1。
其次,我在反思考试过程中的“思考”的问题。模拟赛中我的思考还是比较活跃的;但是在压力之下,我的思维更像是毫不犹豫地选择走了之前的套路,一点花样也玩不出来,甚至可以说深入的分析在考场上很难实现,有可能连出发点、切入口都想不到。很奇怪的事情,对于现在的比赛题目来说还是很致命的硬伤。
这当然和个人能力不足有关,也和个人的心态有关,在压力之下专注思考还是有点困难的,Day 1、省选 Day 2 和 NOIP 都有这样的问题出现。总的来说,考场上思维不活跃,这里也有心理因素占了一半吧。