前言
说实话,我这次 NOI 还是有些紧张的。比赛前几天也有些失眠,甚至梦到了自己 Day1 考了 90+30+10=130。我真的很希望自己不是这种结局。
江四喜老师曾经在《物理竞赛教练笔记》中提到,竞赛过程本身对人就是一种煎熬。熬出来了,出头;熬不出来,出局。这种结果也许残酷,但同样也是其魅力所在。我当然不希望自己会出局,但是在另一方面,我也没做好出头的准备。即使我出头了,那又怎样?终归是要回去搞文化课的,能不能把之前拿到的约兑现也是个很大的问题;如果打 Fe 或者 Cu,其实也算是个不错的结局,至少这会将我最后的幻想打破,也许能让我更好受一些。
说实话,这一路走过来还是十分艰难的。我经历了许多个低谷与高潮,也同时见证了自己的进步与成长,认识了许多志同道合的朋友,见识到了不少大佬,感觉还是非常充实的。
在最后,希望我能在 NOI2024 的赛场上取得理想成绩。
Day -1
我的室友分别是寻逍遥2006、Liuxizai 和 _LiMLE_,感觉我是整个寝室最菜的人。晚上跟着队长换了不少徽章,深深感受到了自己的弱小。
Day 0
早上进行了开幕式,感觉表演有一点唐氏。今年是 NOI 创建 40 周年(但是为什么是第 41 届呢?/xyx),进行了一个很长的颁奖典礼,硬控半小时。可以发现我们学校没有被评为优秀学校,这充分说明了我的弱小(但是 XG 似乎被评为了优秀教练)。
下午进行了笔试,最好笑的是工作人员不小心把选有正确答案的问卷下发了下来。工作人员进行了紧急处理,收回了问卷,然后重新发了一份没有答案的问卷,但是题目以及选项并没有更改。于是我就轻松简单加愉快地拿到了 100 分。但是可怜的 ckain 似乎只拿到了 98 分,看他还敢不敢携带标有“丝滑拿铁”的咖啡。
试机的题目是 NOIP2023。这次的系统中有一个名叫 SelfEval 的软件,可以帮助选手测试测试点!也就是说这次考试是分为 pretest 和 system test 的!
希望 pretest 强一点吧。
Day 1
赛时
感觉到了场上还是有点紧张的。
我先看了一眼题目表格,然后惊奇地发现 T2 仅有两个测试点。再一看,原来是交互题!真是活久见啊,交互题怎么被放在了 D1T2。
然后开了 T1,感觉有一点思路,发现了目标条件的一个必要条件。我不知道它充不充分,于是打了份暴力验证了一下,发现通过了 1~3 号样例,但是在 4 号样例中坠机了。在 4 号样例中有 q=10^6 次询问,但是它只将其中的一个 No
判断成了 Yes
。感觉有点慌,于是开了 T2。
T2 还是挺有意思的。首先对于 Subtask 1,只能提交 T=1 次请求,而 S 的限制又刚好是 {1\over 2}n(n-1),也就是说这一次请求必须将所有 (i,j) 数对都进行询问一遍,否则交互库可以直接将没有被询问到的数对 (x,y) 分别设为最大值和次大值,就不能猜到答案了。这 15 分就轻松拿到了。
然后对于 Subtask 2,限制是 T=20,S 是 n 大一点点。有一个质朴的思路是在每次请求中将所有数两两分组进行询问,每次就能排除一半的数了。但是这样做 T=\log n=20,只能拿一点点分。
再仔细研究题目的评分标准,发现 S 爆掉是及其不优的,因为如果即使 S 仅超过了一点,得分都会 \times {2\over3},不如想怎样减小 T。
容易发现当只剩一点数的时候,花费一次请求将数的数量减半是及其不优的,不如在某个时刻牺牲一点 S,将剩余部分换成 Subtask 1 的做法。这样就可以卡到 T=13,喜提 52 分。
再仔细观察可以发现每次减少一半的数也是不优的,可以尝试将三个数分成一组,组内花费三次询问查询出最大值,这样就可以每次减少 2\over 3 的数了。但是,这种操作比较浪费 S,可以先用前面的方法减半几次,再使用这种方法优化。这时 T=11,可以拿到 63 分。
但是这样在数量极小的时候还是有一点浪费。于是我又在某个时刻将所有数分成 50 组,再用 Subtask 1 的方法分组求解。这时 T=9,可以拿到 78 分。但是接下来再也卡不进去了。
然后再回去看 T1。发现题目有 60 分 k\le 5 的测试点。然后就赶快打了这个部分分。但是我前面的思路其实也没有完全错误,就把之前的代码拼了上去(赌狗是这样的)。测了一下 pretest,发现拿到了 70 分。再一看,原来是 q=100 的两个点都没有出问题,而 q=10^6 的点都 WA 了。如果出题人没有刻意去卡我的话,应该最终就是这个分了。
再去看了 T3,但是 T3 没有任何思路,就只好打了最基础的 12 分。而且特殊性质也不好打,最后只好放弃了。
此时时间还剩一小时。我曾尝试在三题的所有地方多打点分,但是发现还是没有任何进展,只好对着代码检查了无数次。
赛后
**異議あり**!
考试的最终得分是以 system test 为准的,而且在考场上也强调了无数次 SelfEval 仅供自测,与最终成绩无关。于是在下午查分的时候出现了神奇的一幕:
**我 T1 变成了 $75$ 分**!
再仔细一看,原来是运气比较好,我的程序在 system test 一个 $q=10^6$ 的点中没有出现问题!
这样以来,我 T1 的成绩就变成了 $75+78+12=165$!
于是我以 $1$ 分的巨大优势超过了 [ckain](https://www.luogu.com.cn/user/456415),脱离了 HB 垫底!
不过这个分数依然很危险,Day2 要加油啊……
## Day 1.5
在两天考试之间有一天团建日,我们上午去了三峡博物馆。
下午没有任何安排,就一直在摆。
## Day 2
### 赛时
感觉前一天没睡好。
我先开了 T1。先试着打表找规律,发现没有任何性质。于是写了份 bfs 的暴力,喜提 $70$ 分。
然后开了 T2,感觉不太可做。就先打了个 $15$ 分的 $O(n^3)$ 暴力。
再看到了 T3,感觉挺可做的,然后打了个 $O(n^2)$ 的暴力,发现在 3 号样例坠机了。再仔细读了一遍题目,发现二类点删边的同时还需要保证一类点依然存在,于是我的做法假了。不过依然可以通过特判得到 AB 性质的分。再写了个 tarjan,得了 A 性质 $O(n)$ 的部分分。此时总分为 $25$ 分。然后尝试了各种乱搞,却不能得到更高分数。
然后再看到了 T2 的特殊性质。我写了个链并且 $h=0$ 的性质,多拿了 $10$ 分。
这时我尝试将 T1 的 bfs 进行优化,但是似乎没有快多少,就放弃了。
于是总分就是 $70+25+25=120$。
### 赛后
赛后别人跟我说 T1 把 bfs 换成 dfs 就能拿 $85$ 分,感觉输麻了。
下午查分的时候并没有挂,挺高兴的。
$105+165+120=390$,这个分数真是太危险了。[ckain](https://www.luogu.com.cn/user/456415) 获得了 $397$ 的高分,不过也很危险。他锐评道我们就像是走在一根独木桥上的两个人,现在有一只熊出现在我们面前,但是我走在他前面。(乐)
### 嘉年华
嘉年华真是太好玩了!还有人唱《Never gonna give you up》!简单玩了五个项目以后,换了个唐龙就润了(重庆真是太热了)。不过小唐真的很可爱!
## Day 3
上午是《我与 NOI》的演讲,不过穿插了很多个节目。节目有《希望有羽毛和翅膀》、《only my railgun》,其他的忘了,不过真的很乐。我在摆烂玩元气骑士,通关了一次屌炸天和一次普通纯粹试炼。
然后回寝室玩 Celeste,通关了 1b。然后就到了下午的领奖时间。
不出所料,拿到了 Cu。不过更难绷的是我和 [ckain](https://www.luogu.com.cn/user/456415) 以及 [KellyWLJ](https://www.luogu.com.cn/user/449579) 是在同一排上去领奖的。我们 HB 真是太有实力啦!
## 后记
感觉今年选手普遍实力提升了。今年的题目明显比去年难很多倍,但是分数线甚至比去年的高。这就导致如果纯靠拼暴力,想拿 Ag 就必须几乎零失误。当然,也有可能是 SelfEval 的原因,使得大家都不会挂分了。虽然这次我是拼尽全力把所有能拿得分都拿到了,但是还是没有拿到 Ag,感觉挺无助的。不过也行,反正我文化课提不起来 Ag 也是没用,还不如拿 Cu。
现在看来,我真是傻。我为什么明知可能拿到 Cu,还要停课搞 OI?好好学两年文化课不好吗?
其实换个角度想,学 OI 真的挺快乐的。有些东西是学文化课不可能学到的。最实际的,我亲身体会到了什么是“天外有天,人外有人”:在我前面有两百多个大佬,我会做的东西他们会做,我不会做的东西他们也会做。和他们竞争给我带来了许多乐趣。
我学了这么久 OI,到底获得了什么?我的回答是:徽章若干、唐龙一个、铜牌一块。和朋友们在一起真的非常快乐。
那为什么我明知自己可能失败,还要坚持学 OI 呢?我想答案其实就藏在 D2T2 的题面中:
> 因为山就在那里。
那我就引用 yyl 在讲题中说过的一句话作为这篇游记的结尾吧!
> 祝大家都能过上自己想要的生活。
![](https://cdn.luogu.com.cn/upload/image_hosting/snsg3xo2.png)