鲜花:attention is all you need
给因为标题点进来的人道歉,这篇鲜花和 transformer 没有半毛钱关系。
今天重刷了一遍 信息学竞赛 (OI) 究竟发生了什么?,第一次看是在 CSP 出发前一天的晚自习。
这个视频完全改变了我的 OI 观,也使我在 NOIP 的备赛阶段有了突破性的进步。
因此,我觉得有必要向所有人安利这个视频,并且不要脸地向大家再聒噪一下我的观点。
虽然视频有点长,但是有时间一定要看完啊()。
为了说明我的观点,我们来看几个我的趣味小研究。
一
以 NOIP 2024 为例,我们来深入研究一下,如果你只会普及组算法,没有见过任何 trick,却拥有很高的思维,最多能在比赛中获得多少分。
为了避免不必要的争论,我所说的普及组算法,是在 CCF 给出的 NOI 大纲中,难度评级在五级及以下的算法。
- T1([NOIP2024] 编辑字符串):
贪心,伴随一些实现细节,个人差超级大。场上有二十分钟切掉的普及组选手,也有会 T2T3T4 不会 T1 的人。
在实现上没有使用任何算法,使用循环结构即可获得 100 分。
- T2([NOIP2024] 遗失的赋值):
对每一段分段容斥计数,然后用乘法原理乘起来,难度不大。场上大部分人都顺利切掉。
在实现上,你需要使用快速幂,并知道取模运算,这样就可以获得 100 分。
fun fact:在 NOIP 刚结束的时候,有人在讨论区发了一个 快速幂,并询问为什么会 T。
当时机房有两人的对话大意如下:
A:这人什么水平啊,怎么还有蓝勾;
B:就算他连快速幂都不会写,他也知道怎么算答案。
- T3([NOIP2024] 树的遍历):
主流做法为容斥 + 换根 DP 计数,很困难。场上切掉的人很少,我是说 HE。
如果我说用普及组算法能做这题可能有点过于激进了,所以我们放低标准。
经过我对部分分的观察,想要拿到 和 性质,应该不需要提高组算法。
这些加一起有 40 分的高分!
- T4([NOIP2024] 树上查询):
纯种 DS,需要了解关于 LCA 的高级知识,也很困难,场上更是没人啥人切,我还是说 HE。
如果只会普及组算法的话,应该不了解 LCA 的相关性质,可以打个 和 ,是线段树维护区间 LCA。
这样也有 32 分的高分!
经过我们的精心统计,发现可以获得总共 的高分,在 HE 高中生正式排名中获得了并列第七名,队线以内。
二
研究 ds 在面对同等难度评级的问题时,对于哪一类题的表现最好。
为了防止它上网贺题解或者数据库中有这个题,我关闭了联网搜索,并且选取了比较新的题目。
我是这么判定的:给 ds 全部题面和小样例,让它用尽可能优秀的复杂度,测大样例(or 提交),如果没有通过,给其若干次改正的机会,如果它不停写本质相同的代码 or 出现幻觉 or 通过大样例则结束。
上文所说的困难贪心。
ds 思考 312 s 后给出了一份代码,未能通过小样例,告知后又写了一份,未能通过第一组大样例,告知后它开始曲解题面,反复申明题面意思后无果,提交它写出的代码,获得了 60 分。
中规中矩的换根 + 二维数点,实现上需要主席树或其他高级数据结构。
ds 思考 205 s 后给出了一份 代码,让其优化后无果,明示需要 做法后,又用了 203 s 得出了正确做法,提交后获得了 100 分。
数学题,需要灵光一现的构造。
ds 思考 400 余秒后无果,被强制掐断。
重复尝试三次,均是相同结果。
正常难度的计数 DP,场上过的人并不是很多。
ds 思考 142 s 后得出了正确做法,提交后获得了 100 分。
交互题,需要利用回文的相关性质设计交互策略,被很多人认为是简单题。防止 ds 不理解算法竞赛中的交互,给它讲了半天关于交互的知识,并让其加入记忆。
ds 思考 400 余秒后无果,被强制掐断。
重复尝试三次,均是相同结果。
囿于笔者精力,实在没有时间再去进行更多题目的研究了,所选择的题目是我在学习中独立切掉且认为难度相近的题目,分别涉及:贪心、ds、构造(图论)、DP、交互等不同算法,思维难度和实现难度各异。
根据微薄的样本量,我得出了初步结论:相比需要灵光一现的设计,和一些有趣的观察的题目,ds 更擅长写实现难度高,但是思路上没有什么瓶颈的题目。
三
根据以前(2023?)的一个在 U 群的调查问卷,51 % 的 OIer 认为 OI 题越来越像 CF & AT 题,在前一年,这一数据是 12 %。
综上,我得出了一个结论:attention is all you need.
这也就是说,面对越来越难的 OI 题,越来越高的分数的大环境,相比代码能力,对于关键性质的观察,以及设计精妙算法的能力,显得更加重要与可贵。
在我遇到的很强(至少能吊打我的) OIer 中,他们的优势都在于出色的思维能力。
所以,当水平停滞不前的时候,当感到迷茫的时候,不要再学高级算法了,停下来,可以去刷刷 CF/AT,多打打优质比赛。
水平不和掌握的算法多少挂钩,而是和思维能力挂钩。我觉得这句话在我目前这个阶段适用,希望它能一直适用。
题变少了,送分题没了。思维含量加大了,死学算法数据结构板子,碰到题上来就套板子不管用了,自然就难了。刷了一千道dp,第一千零一道还是不会,当然难。---- 来自知乎老哥的回答:“信息学竞赛(OI)在近几年出现的难度升高的倾向是为什么?”
本文作者:Kenma
本文链接:https://www.cnblogs.com/Kenma/p/18712230
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步