我是一个高二的OIer,离我正式退役的日子已经不超过一年了。在这个时期,与其写一些回忆性的文字,不如跳出“自我”的范畴,以一种比较全局的角度和大家一起分享一些我对OI的认知和看法。目的是让初三高一的学弟学妹看清眼前的路,让高二高三的人了解自己走过的足迹。
一.独特的模式
知识的更新
我们先从OI的比赛日程谈起。选手获得NOIP一等奖后,可以报名参加WC(时间为1-2月)。而在5月,选手即使没有通过省选进入省队,也可以报名参加CTS(C)。其中WC和CTS(C)不仅是信息集训队的两轮选拔,也是非集训队选手得奖的机会。而每年的WC,都会安排集训队选手和前集训队选手进行授课。每年的CTS(C),会安排候选队选手(去年是候选队前6)来进行英语自我介绍和论文答辩,这一项的分数是要按一定权重计入集训选拔分数的。对于一个集训队选手来说,他不仅需要完成题目,还必须写一篇关于集训队作业某些题的解题报告,甚至可能需要写命题报告。如果他进入候选队,那么他必须写一篇候选队论文。有时候选队15人会组成小组互相出题给对方做,这被称为候选队互测。
撇去“收钱”的原因,为什么CCF要这么安排?因为CCF明白OI的知识范围的更新只能靠水平较高的优秀选手来完成,之后服务OI的主力军也是他们,而WC和CTS正是新的知识点向各个选手普及的过程。例如:2008年陈丹琪论文中出现了cdq分治,WC2012的陈立杰的《后缀自动机》讲稿,在2013候选队论文《浅谈数据结构的几个非经典解法》中出现的二进制分组的思想,在2015集训队论文出现的多项式求逆、ln、exp等技巧,以及在2019年WC讲授的模拟费用流问题。硬性规定的解题报告、命题报告,是对他们之后出题工作的一个很好的训练。
那些新潮的知识点会借助互联网的平台逐步往下传。一开始在那些大佬们的博客中出现,然后是一些高层次的比赛的题目(比如WC,CTS),接着是很多强校的模拟赛,最后就是NOI、省选、NOIP的真题了。在传递过程中,这些idea会经历一定时间的考验和衡量。最后我们留下那些能简化代码量的、对某些问题非常适用的、具有考察价值的知识点,在1-5年的时间内成为我们必须要学习的内容。
这样的安排无疑带来了非常好的效果,给OI的知识体系增添了活力。唯一美中不足的是:缺少能看懂候选队论文的评委。每次答辩的时候,评委总是会问一些质量不高、无关紧要的问题。也许是因为CCF也知道这一点,除了一些极端情况外,候选队论文答辩的分数不影响最终国家队的名单。
命题的故事
那些集训队选手毕业后一部分会加入清华或北大的算法协会,在1-5年后成为比赛出题人。命题的工作需要寻找一个“灵感”,就是这道题的核心想法。在那之后还要经历撰写题面,编写标程,设计部分分,验证数据正确性和强度等一系列步骤才能真正完成一道题目的命制过程。一般而言,为NOI系列赛事命题有数百至上千元的报酬,但这些费用只是一种“辛苦费”。如果单从功利的角度来说,讲课或者专心学术是更好的选择。他们这么做完全是出自于一种对于OI的情怀。
但命题质量和数量的保障,甚至保密性都只能由他们自己来保证。如果在NOI附近正好处于出题人们idea的枯竭期,那么NOI的质量势必不高。如果出题人正好要准备大学的期中考试等事情,那么他很难全副身心地去做出题的工作。就算出题人很用心的出了一道题,但是这道题也有可能因为难度不合适等问题而不适合出现在比赛中。也可能是因为这些原因,OI历史上出现过很多设计不合理的比赛。ZJOI2018的难度过高、区分度过低,CTSC2018的题目出错,NOIP2018的原题现象,CTS2019的知识点分布不合理都是鲜活的例子。
改进质量的方法,很大程度上仰仗于OIer与命题人的反馈交流,迫使出题人做出调整。你会在知乎上看到“如何评价xxxx(某比赛)”问题,就是出题人与选手的互动。底下这些评论往往表达选手的做题体验和出题人的出题经历,例如 [1]。最近还出现一些选手在自己出模拟赛的过程中探讨出题的准则,比如 [2] 。 出题人了解某道题的得分情况和选手对这道题的评价后,他才能了解选手的普遍水平,才能了解哪些类型的题是对当下选手最具有考察价值的。在2017年某个出题人出过一道名为《挑战》的题,正解是使用底层优化(卡常)使理论复杂度很高的算法通过匪夷所思的范围(\(O(n^2)\)跑3e5,\(O(n)\)跑2e8)。这场比赛当天该题被批判的声音就层出不穷了。之后这位出题人出的题,质量就有了很大的改观。
学习的过程
作为一个选手,你最关心的可能是学习OI的过程。在NOIP提高组以下的层面,学习知识点可以通过看书,但是在这以上,尤其是针对较新的知识点的学习,就要依靠网上的博客了。博客一般是由现役的选手来完成的。但博客的质量鱼龙混杂,良莠不齐,你在百度上搜lct,10篇里面有6篇的findroot后没有splay。即使是水平较高的选手,他们写的题解也不一定能让别人容易看懂,很多时候简略到只有一句话。一个普遍的问题是讲解知识点或题目的时候单单着重于结论、算法过程,没有把这个结论为什么是正确的、这个算法为什么要想到这两个问题讲清楚。[3] 表达了和我类似的想法。你有时看到题解大呼”太巧妙了”,“太神仙了”,其实是因为没有体会到思考的全过程。为了解决博客质量的问题,我们建立了OI-wiki,shareOI,洛谷的题解拥有严格的审核机制。
洛谷、LOJ、UOJ上的学习资料是免费的,网上的博客是可以直接搜到的,是面对所有OIer的。在这个资源共享化的时代,你只要肯下功夫学,就有丰富的资料和题目可供学习。这一定程度上拉平了强校与弱校的差距。但是由于我上一段提到的原因,学习不能完全依靠于博客等资料,需要有选手来带,需要有优质的模拟题来增加比赛经验。往往只有强校能请的了上一届的优秀选手、教练来讲课,能拥有不对外公开的模拟题和OJ,所以强校与弱校的差距也将长期存在。
另一个重要的方面是讲课,这一工作也由高水平选手承担。讲课一种是在机构受聘讲课,另一种是在自己的母校讲课(这种包括现役选手和退役选手)。前者的特点是受惠面积广,能够让更多人学习。后者的特点是学生较少,容易通过调整自己的讲课方式来满足本校学生的需求。相比于前者,后者带有更多的自愿性。前者推动了OI资源的共享,而后者起到推动一个学校发展的作用。这并不是说前者优于后者或后者优于前者,事实上两者都是必不可少的。特别是对我们学校来说,让上一届去带下一届是向外省强校追赶的必不可少的环节。而一个小集体的发展与一个大集体的发展是相互联系的,有时一个学校的优秀选手可以带动一个省的崛起。
一条从未走过的路
OI的知识与我们小学中学所学的东西是无关的,甚至与大学所学的算法和主流的计算机科学界关系都不是很大,它是一个相对独立而封闭的体系。我们缺少完全理解OI知识体系的老师,我们缺少能够长期命题的出题人,我们缺少专业的研究者。我们面临了种种不利的客观条件,这些是其它四大竞赛所没有的困难。
但我们不曾放弃,我们不曾退缩。我们竭尽全力探索出一种符合OI竞赛特点的模式。这往大里说,是“计算机普及要从娃娃抓起”的践行;往小里说,是为适应时代做出的努力。
我们终究探索出了一条从未走过的路,那便是以OIer本身为主导的OI模式!我们用已经培养出来的OI选手去担任知识引入、命题、授课的工作,用上一届OIer带动下一届OIer,再让下一届带动更下一届。我们借助互联网的平台,发挥它传播信息迅速的优势,把所有的OI选手们连接成一个整体。把而竞赛教练的作用,更多的是去维持这种模式,带动这种模式。
这样的模式是偏向于“用爱发电”的,它的核心基础是OIer们对OI本身持久的情怀。它的优点是让OI界具有很强的活力,给选手学习很大的自由度,也对OI的过度商业化,功利化形成了很好的保护。它也使得”OIer群体“这个概念有了很大的地位。
不过也容易想到它是脆弱的、不成熟的,在前面你可以看到它的缺陷。一旦OIer们全都由于一些现实上的原因没有继续服务于OI,必然会使这个体系有崩塌的风险。但它具有很强的不可替代性,无论是知识引入还是出题、授课,都只有OIer能胜任。这种模式在现实条件下几乎是唯一的解,所以它是很难撼动的。所以我们应该想的是在方式方法层面上做一些改进,让OI的未来变得更好。
二.OIer的价值
开拓者
你打开OJ,思考一道题目。你满足于OJ页面的精致,你陶醉于算法世界的美妙。你可曾想过这些题目是谁出出来的,你可曾想过OJ的搭建和维护者是谁?他们是某一个特别的OIer的群体。他们中有洛谷的创办者kkksc03,LOJ的创办者menci和UOJ的创办者vfk。
你可以从 [4]、[5] 和 [6] 中窥探出当年他们创办UOJ、LOJ的一些理念。我们在第一篇文章中截取两段:
"不得不说今天是个伤感的夜晚。我们此时站在这里,连接过去和未来。曾以为我们的计划会成为我们的未来,却不知道大浪拍击沙滩的力量比飓风更有力。UOJ从哪里来?今晚的UOJ还是一年前发布时的那个UOJ吗?为什么我们慢慢忘了那最虔诚的最初,渐行渐远……于是我意识到,我们应该回去,回头看看那最初的原点。最初我是怀着对OI界题目的不满,最初我和业界毒瘤有很多比较难的脑洞想出给大家玩,最初的最初是那场引发我对OI比赛的思考的NOI2013……我们想建立的是,一个能自由评测各种类型题目的OJ,一个题题高质量的OJ,一个定期举办高质量的比赛的OJ —— 一个能带给OIer思考与收获的OJ。"
"我想起了我最初的一句'宁缺毋滥',我想起了激励了我很长时间的洛克菲勒与协和医院的故事:我们要以最高标准建一所医院,成为中国医学界的一座标杆 —— 而我们清楚地知道,论题目的数量,世界上千万万OJ不缺我们UOJ一家,我们要做的就是聚集最优秀最热爱信息学的OIer,建立一个题目质量难以企及的OJ。"
500多道UOJ题目,上千道LOJ题目,数万个OIer......今天你会看到各个学校的OJ如雨后春笋般增长,就归功于他们用一行行代码缔造的平台。今天你会听到OIer对比赛、对题目的广泛讨论,而那些新潮的想法其实来源于vfk在那几篇博客上阐述的”好题“、“毒瘤题”的定义。今天我们从自己的成长之路向前追朔,也总能够追朔到他们的所创造的资源。
他们是灯塔,他们是引路人。他们开拓了一条OI资源共享化的道路,他们以数十人之力创造了数万人的价值。在之后的社会上,你很难看到像他们一样完全坚持自己的初心、梦想,无私地奉献自己的一切而不求任何回报的人了。我们希望他们的那些文字能够在OI的历史上熠熠生辉。
不可或缺的角色
诚然,我们很难像他们一样对整个OI界做出很大的贡献,对他们的态度也只是停留在“虽不能至,心向往之”的层面。那么我们的价值又在何处呢?
很多学校的教练都会在我们还是初三或高一时请高二的学长给我们来讲课。一年过后,我们欢送他们退役,但我们站在他们的肩膀上,经过各种比赛的磨练,使自己变得更强。当我们磨练得差不多时候,我们就成了学长,就被要求给下一届的学弟学妹们讲课。WC2018的两首改编歌词《我的一个OIer朋友》,《退役的你》(详见 [7] 、 [8] )是这段时光的真实写照。我们从第一首里面截取一段:
"他们说的退役太沉重,你在路上追着你的梦。
前路会与过往不同,但精彩纷呈。
而我深夜刷题至三更,大赛过后睡眼正惺忪。
恍然之间终于看懂,当年你笑容,谈何轻松?
不如将你镌刻在心中,以足迹为路以背影为灯。
去年今日你的歌声,由我来传承......”
在这一段OI的旅途中,我们送走了一批人,又迎接了新的一批人。 我们把从学长那里得到的东西,经过自己的再加工、再整理,传递给下一届,然后由知识的接受者变为了知识的传播者。我们成了手握接力棒的人,成了连接过去和未来的人。这段旅途中难免有送别的伤感,但薪火相传的使命与责任,才是主旋律。
如果我们中出现了一个优秀选手,那么就会产生更大的贡献。一是会吸引更多的OIer来这所学校学习,然后进一步提高下一届选手的水平。比如我在初三时选择进入华二而非上中,是因为看到2017年华二CMO进了5个集训队,而上中只进了一个。二是会使整个省的目标提高,进而带动整个省的水平。在2016年前,可能上海的目标是争取更多银牌选手。但因为像吕时清、何文阳之类的优秀选手出现,特派员开始朝着金牌这个目标努力了。他会亲自那些不错的OIer下发题目,亲自评测、会在NOIP/CSP前安排几次针对全市选手的模拟赛,会请外省的集训队选手来讲课。最终上海在CTS,APIO,NOI上实现了这一目标。
哪怕你只是初二、初三、高一的OIer,还没有达到给学弟学妹讲课的阶段,你也会不知不觉中影响很多人。在这个资源高度共享的时代,你不经意间说的话,写的东西就可能会被数百人看到,然后数百人传给更多人。就像我博客里面写的“JOISC 2020自闭记”,阅读量已经达到了530人,而我认识的OIer也不过100人。也许这530人还会传给他们的朋友、他们的下一届选手,说不定就有1000人直接或间接地看到了我写的题解了。
另一种价值
由于OI竞赛本身这种独特的模式,OIer群体的概念与个体的概念,拥有同等的地位。所以一个OIer在他的生涯中,不仅存在个人价值(比如拿一等奖,进省队,进集训队),还存在着另一种价值,那便是个人对OIer群体的价值。
很多时候实现个人价值也是实现这种价值,这种价值是个人价值的延续,因为高水平选手给OI界可能创造的价值越多。但和个人价值不同的是,这种价值所影响的时间更长,所影响的范围更广。也许我们退役过后,我们所获得的奖项,只是OIerdb上那一条条数字了。个人价值是一个OIer退役后所带走的,但这种价值是一个OIer退役后留下的东西,它是不会过时的。你为你身边的OIer所做的事情,像是埋下一粒种子,它会在几年之内生根、发芽,长成一棵大树,甚至繁殖出更多的生命。vfk那一代的OIer很难想到他所创办的UOJ能使这么多人受益,王聿中、吕时清、王润泽那一代的OIer也没有想到他们的努力会使上海在NOI2019进入3个集训队。但这一切,都在不久的将来发生了。
所以我们在学习知识之余,也要想一想我能为我身边的OIer做些什么,我能为整个学校做些什么,我能为整个市做些什么,我能为整个OI界做些什么?知识层面上的贡献有:出题、讲课、写论文等。另一种贡献是文、史、哲层面上的,比如Tangenter写《整型溢出》一书整理2016-2019年的OI历史。即使我们还没有达到为别的OIer做事情的阶段,我们也要了解别人给OI界带来的贡献,我们也要对那些为我们付出过的前辈们怀以感激,怀以敬意。
三.渺小而卑微的坚持
时间、运气、命运对OIer们来说是残酷的字眼。再强的OIer,也有退役的时刻。再努力的OIer,也难以保证他在省选或NOI一定能够有和他的付出对等的回报。这是很多OIer心知肚明的事实,也是我们无力感的根源。
也正因为此,有的人选择了把OI当成生命中的过客,没有对它付出过多的精力和情感。但另外一些人仍然把OI当作自己的归宿,甚至当成生活的全部。究其原因,是因为他们给OI这个词赋予了太多的意义和价值。
他们坚持停课,坚持与班主任老师、甚至家长“对抗”,坚持自己心中的目标。他们舍弃了睡觉时间来打cf,舍弃了文化课来刷模拟赛。有时,他们要面对的是孤独、不理解和对自己前途的恐惧。你可以说,这是坚持、执着、勇往直前,但在命运面前,这是渺小、卑微的。一场考试的结果是难以预料的,一个字符之差就可能是100分与0分之差,一个部分分之差就可能是20多名的差距。最勤奋的人,也不敢说,自己能够掌握自己的未来。
OIer之外的人对他们有两种极端的态度。一种是以竞赛的风险为理由,劝说(甚至逼迫)他们放弃OI竞赛而去搞高考。这些人否认OI给他们带来的意义,没有看到他们在OI方面的付出。也许从数学期望的角度,这是较优解,我们不必做过多的批判。但这种态度杀灭了他们的纯粹的梦想,给他们的青春留下无法抹去的遗憾,甚至伤痕。另一种是盲目地支持,为了走这条路而断绝他们的一切后路,放弃一切OI之外的事务。人不是机器,过度的、长时间的投入是否会产生和这种投入成正比的收获,是不好说的。即使成功了,它能否补偿他们所失去的东西,也是不好说的。这种态度产生的根源是没有客观地认识到OI的风险,把竞赛和高考的两套评价体系完全地割裂开来,甚至当成对立面。
我们应有的态度是怎样的呢?应该是一个朋友的角色。我们可以在他们考砸的时候予以安慰,可以在他们考好的时候予以鼓励。我们可以和他们一起讨论题目,一起学习算法,一起打模拟赛,甚至在空闲时刻聊一些游戏、漫画的内容。我们既要提供助力他们成功的实质性帮助,也要想方设法缓解他们的压力感和孤独感。当然,我个人认为,不必对他们的选择做过多的干预,因为我们很难完全理解他们的内心想法,很难影响也不应去影响他们的命运。至于决定他们是选择坚持还是放弃,应该是老师和家长所做的事情。
如果你觉得他们离你很遥远,请你不要像某些人一样用好坏利弊简单地评判他们的选择,请你不要抱着“与我无关”的态度。
如果你正好就是那些选择孤注一掷的OIer,请你相信有无数的OIer是支持你的,请你相信你的付出终将会在某个时刻回报你,请你相信无论怎样,你在这个过程中成长了、收获了。但也要告诉你,既然有勇气坚持走下去,也要有勇气承担它带来的一切结果。
后记
其实我写这篇博客的想法,可以追溯到北大集训期间LCA给我们讲的一些话。在他的讲话过后,我了解到了OI diary,我了解到了OI survey。我看到了有一位前OIer去主动地查找资料,以一个选手的视角记录前几年OI界发生的事情,甚至有一个人想编撰一部完整的OI史。我发现OIer们做了很多学习知识之外的事情,例如对自身价值的探索,对学习竞赛的意义、乃至生命的意义的探讨。这种东西既体现在某一小群OIer所写的长篇的文章里面,又渗透到了很多OIer博客里的随感。于是我也对OI界的一些现状做了简单的思考,整理成了这篇博客。
如果从写文章的角度来说,第一、第二节可以构成一个完整的主题,而第三节显得有点画蛇添足。但是在我身边真的有很多选择孤注一掷地搞OI的人,其实在我的学校里就有,而他们面临的环境并不乐观。我特别想为他们说一些话,却不知道何时能说,却不知道从何说起。所以我就在这个机会为他们说出我的心里话。
最后,感谢你能够读完这篇博客,也希望这份思想的火炬永不熄灭!
链接:
[1] https://www.zhihu.com/question/333860946/answer/755528534
[2] https://www.luogu.com.cn/blog/ouuan/to-be-a-good-problemsetter
[3] https://etaoinwu.com/blog/on-teaching-and-learning/
[4] http://vfleaking.blog.uoj.ac/blog/909
[5] http://vfleaking.blog.uoj.ac/blog/4
[6] https://loj.ac/article/45
[7] https://www.bilibili.com/video/BV1KW411E7gu?p=1
[8] https://www.bilibili.com/video/BV1HW411n7vQ?p=1