NOIP 2022 游记
料峭春风吹酒醒,微冷,山头斜照却相迎。回首向来萧瑟处,归去,也无风雨也无晴。
Day -14 ~ -7
Day -6 ~ -1
全都停课了,每天一场模拟赛。本来以为要去别的地方考试,但后来还是选择了在我们学校办。
广州疫情越来越严重了,希望 NOIP 能够举办成功,至少能考。
后两天去了考场的机房熟悉环境,跟广州其他的 OIer 一起打热身赛。不过有一场特别水,半小时就 AK 了,还有一场是之前做过的。
晚上看了看球赛,沙特爆冷是我没想到的。沙特还因此全国放假一天
还有日本和德国那场,我在想,会有谁在 NOIP 上爆冷呢?是神仙失误挂分,还是一向不被看好的人超常发挥?
记得上周有一场模拟赛很创(@wlx),分差很大,我只有 45 分垫底,第一名 280 分。虽然已经经历过各种模拟赛的我表现得无所谓,但王老师明察秋毫,下午把我叫过来谈话。
具体谈了什么忘了,只记得王老师告诉我 jzy 的事迹,还有改变我想法的一句话:“你越想得到的就越得不到。”
回去仔细想了想,发现我的确对 NOIP 太在意了。毕竟已经高中了,NOIP 考不好的话这一年基本白费。再想了想之前很多在我身上发生的事情,确实是这样。
上个月的 CSP 给了我许多自信,352 分,我认为这已经非常高了。但回想一下去年,我 CSP 231 分,拉了同校其他人很多分(其他人去年 CSP 都考崩了),但是 NOIP 也只有勉强一等而已(162 分),WC 的时候更是打铁(30 分)。一时的考好不能说明什么,我也无法预料到我会不会在考完 NOIP 后退役。应该不会这么快退役,但是我无法预料自己会不会跟 lmh 一样。
还有很多想说的,但是我把奥日 1 也打通了,就跟 ztc 入坑 tetr。一开始上分好难,只能打 solo,到 10 级后打定级赛被虐了,最后定到了哪?我不好说。
最后一天晚上开始疯狂颓,打 tetr,连续掉分,算是为明天涨 rp 吧。后面又被 wcj 怂恿玩 MC,扩了下田,但没扩完就退了。
老师叫我们打扫下卫生,因为明天有老师来参观(?)。搞完卫生老师还请我们吃了肯德基(我感觉我们拥有全天下最好的信竞老师)。
最后想着早点睡觉就回去了。发现 phigros 更新(怎么跟 CSP 一样?),就拿舍友板子打了下。El Condor Pasa 还行,打了两遍 5 good,懒得推了。那个 Break Over AT 就真的离谱了,初见被薄纱,85w,这是愚人节谱吗?
总之各种离谱的地方,不是烂谱,但就是很离谱。
Day 1
这一天还是来了。
昨晚没睡好,美其名曰:压力大睡不着,其实是整个脑子都在 tetr,你能想象一个人睡觉的时候脑子里面在“砰砰砰”地激情按空格吗?
早上还差点没买到早餐,买了两个包子就走人了。
到机房还是继续在 B 站颓,老师过来发了各种物资:三个巧克力,一瓶豆奶,一瓶水。结果一到考场那边啥都带不进去。
最后还是没有多打些板子,希望考场上不要降智。
开始了。
这次有两层密码,外层 \(\text{biu#2019miss}\),内层 \(\text{solo@2022}\),还是提前 3 分钟解压,提前 3 分钟结束。
先调了一下 C++ 配置,然后打了打 \(\text{my_std}\),测试无误后开始看题。
先开 T1,题目大概是给一个 \(n\times m\) 个网格,有一些格子不能填,求填 \(C\) 和 \(F\) 的方案数。好像很简单?但你先别急。
看完了题,开始手推。\(C\) 的话枚举左上角,处理出每个点能往右往下延伸多少,然后把能作为左下角的格子贡献加起来就行了,时间复杂度 \(O(nm)\)。
再看 \(F\),好像也是一样的,枚举左上角就行了,时间复杂度 \(O(nm)\)。
快速码完,测了大样例,都过了(为什么大样例是 114 514
啊?)。看起来左右两边的人都还没开始打代码。
接着看 T2,有点怪,再看一遍。读懂题后没什么思路,就看数据范围。\(k=2n-2\) 是 naive 的,\(n=2\) 也比较简单,往后就不太会了……
大概 \(9:00\) 的时候还是没什么思路,就往后看题面。T3 求军营和看守道路的总方案数,乍一看并不好做,但其实缩完点就做完了。快速冲了一下,很快过了所有大样例。
接着看 T4,很标准的 DS。对着数据范围想了一下发现只会 \(n,q \leq 3000\),就倒过头去做 T2。
“现在才 9:30,我总不能三个半小时都在坐牢吧?”
大概想了半个小时 \(n=3\) 后,我发现自己在做无用功,便又回去做 T4,这时我已经慌了(不对啊才十点你慌个屁啊)。
看还有哪些部分分,好像 \(q=5\) 好做一点,如果能做的话就有 52 了,配上 T2 的 30 分就有 282 了,岂不美哉?
于是想了大概 10 分钟,想出来了一个 \(O(qn\log n)\) 的神必做法,打了一会就过了所有大样例……吗?
发现第三个大样例要开 O2 要跑 2s,这……不对吧?好像 \(n=q=3000\) 确实很卡。于是又花时间打了一下 \(n,q \leq 3000\) 的部分分拼在一起,跑得飞快。
现在已经快 11 点了,时间不多了,得赶紧冲 T2,想不出来也该打暴力了。权衡了一下,得知自己压根不会做的事实后选择了打暴力。
前两个部分分细节看起来很多,不过时间也还算充裕,就慢慢写,过了所有手造样例。中途发现 \(n=3\) 有一档 \(m \leq 14\) 的部分分,好像暴搜就完事了?那我 T2 就有 50 分了?
开始写暴搜,越写越不对劲,我好像不知道怎么消两个栈的底部。如果三个栈的底部数字相同,那还有分三种情况搜下去,复杂度直接爆炸。但毛估估了一下大概率不会卡,就继续写下去了。
本来想拍的,但发现我根本不会造出必定有解的数据,只好手造了一堆小样例测试,希望不要挂分吧。
时间剩不到 1 小时了,回去看了看 T4,后面的部分分不太像能做的样子,就把我写的两个暴力拍了一下。没拍挂,这是好事。
开了虚拟机,在上面测试(差点忘了怎么在 Linux 下文件输入),好像 T3 爆栈了。由于我不会在虚拟机下开栈,就没管了。
重新检查文件输入输出,仔细检查文件名,测大样例的时间和空间,这些事我都重复干了很多遍。也许是因为我太担心挂分了。
突然想在 NOIP 上整点烂活,但又不知道写些什么,就在我的 T2 下面写下了我对这道题的感慨(愤怒)。
最后十分钟,虽然我明知这已经没用了,但我还是选择继续想 T2。我已经想象到出考场后一车人过 T2 的样子,wlx,lh,wzy,wcj,ztc……
没有迟疑,我径直走出了考场。也许我还沉浸在没做出 T2 的失落,我不愿与他们讨论题目。
回到机房,我抓起外套,趴在电脑面前。我想哭,因为我觉得这不应该发生。
这次的 NOIP 区分度并不大,T1 和 T3 都非常水,但 T2 和 T4 能把我和高水平 OIer 区分开来。也就是说,我现在跟那些初中的学弟们没有任何区别。
“已经……结束了吗……”
我知道你很急,但你先别急,V 我 50,分你一半。
估分:100+50+100+52=302
就当我等着跟同学一起在机房吃饭,一起颓到晚上的时候,老师突然紧急通知说现在立刻回家,因为两点要封岛了。
消息来得太突然,只有半个小时了。我赶紧回宿舍收拾好衣服,又跑去教室把所有书拿了回来。就这么在学校里跑来跑去,上车的时候我已经大汗淋漓了。
从后天开始,我就要回归 whk 了。几乎 5 个月的停课,我该想想我的 whk 怎么办了……
Day ???
最终成绩:100+50+100+52=302,一分没挂,太棒了。
膜拜 wlx 292,lh 275,wzy 260。lgj 好像这次考炸了。
退役了。