参加了2017年2月4日~2月9日于绍兴一中举办的NOI 2017 冬令营。一个多小时前闭幕式结束,现在进行回忆和小结。
冬令营在绍兴一中的旧校区举办,今年9月,学校将迁至镜湖校区,NOI 2017也将在那里举行。旧校区不大,设施上留着时间的痕迹。朴素而不失大气。
寝室4人一间,室友一位和我同省,另外两位来自SD。她们都很可爱。
女生宿舍没有热水和wifi。集训队宿舍有热水。听说个别男生宿舍有wifi。于是,这一个星期,我一直使用移动网络,并且没有冲澡。
开幕式上,轮到DZD秘书长讲话,掌声久久不息。我十分尊敬他。忘不了去年APIO和NOI,他坚持要在现场给所有获奖选手颁奖。但这次他的发言并没有过于犀利的话语,只是再度强调了公平与诚信、联赛保送的取消和竞赛的意义,并表示今后唐副秘书长将介入NOI的工作。
接下来的几天在上课。课程分为第一课堂和第二课堂,第一课堂难度更大,主要由学生专家讲授,第二课堂由强校的名师讲授。发了讲义过后,决定主要去第一课堂,然后四天都去了第一课堂。我、MHB和WHEZ的4位同学坐到了第三排。
2月4日,鏼爷讲字符串,洲鸽讲Ulam猜数游戏,小火车讲IOI 2016试题。2月5日,HYM讲物理现象的模拟,杜教讲并行算法。2月6日,蒋婷婷副教授讲近似算法,毕老师讲整数与多项式。2月7日,松爷讲计算机系统结构和程序底层优化(卡常),AKF讲线性代数,吉丽讲压缩算法。
以上内容中,我觉得鏼爷的选题很好。无关太多数据结构,border、周期、回文——字符串本身就有这么多奇妙的性质。有幸领略到OI、数独rank 1的风采。洲鸽在预发的课件里说,对Ulam游戏说谎次数不超过1的特例给出优于朴素算法的解法将获得神秘礼品,前一天晚上我想了好一会儿;只是发现当n足够大时,交互式模型中分三段查找要优于二分,感觉不是正解。上课时,洲鸽揭晓了几种解答,也许我缺少一些模型转换能力和背景知识。小火车在洲鸽课上的试玩环节提供了专业的评测服务(其实不是小火车而是小火车的程序啦)。先前没有预习,缺乏思考,课堂上理解题意都花了好一会儿,实属失策。HYM讲的物理模拟,动静结合,图文并貌,妙趣横生,什么时候我也来学写物理引擎愉悦身心。隐约感觉去年APIO他也去讲了课。杜教好萌,但是后来就跟不上了(其实这些天里的课几乎没有能跟上半程以上的)。蒋副教授选题不错,然而讲得无趣,把课件念了一遍,只是把短句扩成长句。记住了毕老师名字的来由:“毕恭毕敬,克勤克俭。”他说《算法导论》和《具体数学》对他帮助大,我也得好好研究这两本大部头。松爷讲课的内容不少来自《深入理解计算机系统》,和骆可强的论文也有不少相近,除了缓存机制,基本上先前已略有了解。他说张哥哥说要考他讲课的内容,他表示一脸懵逼。AKF讲线性代数,到后来,他问有谁听懂了,无人举手,于是换了个课件......吉丽讲图片压缩的时候顺带黑鏼鏼鏼的绯闻男友,说此兄拿过NOIP普及组全国rank 1,后来不知怎么就萎了,一定是因为整天和鏼鏼鏼gay里gay气。他说图片的颜色是很重要的,比如他的脸变成绿的就很失真了,然后立马有人把他的脸P成了绿的。
营员交流。2月4日毛爷爷讲BM算法、敦爷讲标程30K的有趣字符串题、WLP讲仙人掌计数。2月5日假老师和猪猪侠讲基于线性代数的一般图匹配算法、某只猫神犇和WrongAnswer神犇讲DFS树、BFS树的一些应用和用圆方树解静态仙人掌问题。猫神犇说,要让常数优化成为一种习惯(flag +1),两人还说仙人掌应该被推广到NOIP中去。
试机兼练习赛。一体机。左右两个相邻座位之间用纸板隔起来,比较科学,然而坐在边上对面的屏幕还是很容易看到的(也没什么用)。题目和去年NOI的练习赛一样,一道传统《起床困难综合症》、一道提答《小Q的修炼》。由此推测要考提答。把第一题又写一遍,算是熟悉键盘。然而冬令营的提答好难......回寝室弄了好一会儿,还上网查了查,才搞出第一个点。
考试前有些紧张。CLY说,反正我们是陪练。集训队在机房考,我们在体育馆考。拿到题,浏览一遍,发现好像都不太会。第一题有10分暴力。第二题这堆长长的伪代码是什么......第三题要构建排序网络?我只会深度为n的暴力啊......但这是冬令营,所以更要淡定。说不定懵逼的不只我一个......
发现没必要理解那段伪代码,在提供的模板里写就好啦。先写了T2的第一个子任务。分两段基数排序,3s,10^8大概过得去,不知2*108如何。结果210^8跑了3.8s+。想起没开O2,加上,区别不大。这一定是在卡常了,排序难道可以比O(n)还优?加了一些register,没什么区别。想起松爷讲课说数0-1串中1的个数分三段查表比分两段快。这里会不会也分三段更快呢?没道理啊。虽然求前缀和变快了,但多扫了两遍2108的数组啊。第二个子任务,只会暴力。我想把这几个数的比较转化成位运算,但是不好做。起码它们是不对称的,而几种基本的位运算则是对称的。第三个子任务,只会暴力DP。也许可以用bitset,但是经过简单计算,并不能多拿多少分。想着O(n^2)差不多也只能跑几千,就没去管了。
接着看T1。怎么觉得所有排列都可以变到啊......原来看错题了,只能移动0棋子。写了T1的10分。后面有树、环、环套树、仙人掌、网格图。我希望能多拿一些分。树上的状态是否只和末位置有关呢?考虑了环的情况,我否定了这个想法(呃......)。画了画,发现环可以对每个询问O(n^2)地判定。不太好写。为了10分值得吗?要不要放弃,直接去玩提答?时间已经不多了。但是考虑到WC的提答的难度,和区分度不大的考试中10分带来的差距,决定还是先做这10分。于是就写了。写完去上了个厕所,不用排队。
只有一个小时了。提答这是什么鬼?理解了一下评分方式——所以输出一个排序网络得一分?第一个点似乎只有一些对换,得到6分。但是从第二个点开始就真的不会了。时间一分一秒地过去。发现后面有的点深度限制为n。回忆了一下暴力排序网络,多得到2分。然后发现还有一些数据可以用暴力排序网络搞......又混了几分。
考试结束。
没去食堂,带上考试发的食品,到校门外转了一会儿。粗略估计,如果没写挂,应该在75分上下。因为最后有点慌,不太清楚用暴力排序网络水了几分。天空中飘着小雨,我戴着帽子。重温一下去年考完APIO在北京城里步行的感觉。雨点在变密,有点冷。学校旁有河,有桥,有公园,有两位垂钓者。一位手背上粘着创口贴的奇怪先生问我从哪里来,来做什么。我粗略地回答,却一不小心暴露了自己高中生的身份。我问他在干嘛,他说他在学英语。受到惊吓的我向他告别离去,不时提防有无跟踪,并决定换条路回去。恰逢HSW问我可否来我们寝室坐坐,虽然她已经去了别的寝室,但我想也该回去了。
去看了成绩。20+40+12=72分。
讲题。第一题是鏼爷出的。暴力40分。我不太明白自己是怎么根据环上的情况来判断树上的状态数不是O(n)的。毛爷爷提到一种听起来像“璀璨光环”还是“腿上光滑”的和网格图有关的算法(被湖南话支配的恐惧QAQ)。正解是一种大多数人不知道的算法。毛爷爷是知道的,但是他相信正解不是这个,上台吐槽“人与人基本的信任去哪儿了”?第二题是松爷出的。他居然一直装作自己没出题的样子。高兴的是,我的算法和标算的时间复杂度同阶,悲伤的是,只有40分。子任务一分三段就过了。许多选手对这道题非常气愤。猪猪侠表示被这样的一道题退役非常不服气,并找出证据,NOI系列比赛条例说试题的时间限制应该开到std的1.5倍以上。全场响起热烈的掌声,久久不息。YJQ(GD)获得此题最高分,并表示大家会给此题以公正的评价。松爷表示不论是你们还是他们要求随堂检测,这道题作为随堂检测还是不错的。YJQ(SC)阴险地向大家宣布自己的计划:明年冬令营来讲怎么压代码长度,然后出一道动态仙人掌上跑费用流,限制代码长度1KB。第三题是张哥哥出的。听完还是不怎么会,但是发觉我忘了一种基本的算法:搜索。
得到一些启示: 1. 仔细分析数据。 2. 写易于扩展的暴力。 3. 不要想当然。实践出真知。 4. 不要忘了搜索。搜索前估计状态数。
虽然名义上只有三道题,其实这次冬令营考了12道题。
晚上有联欢晚会。Menci和大连24中信息组倾情演唱的《膜你抄》好评如潮。晚会结束后有人搞事情,200人围观dalao在台上玩狼人。YJQ(SC)等狼胜利。先前只是听说过这个游戏,对于术语不怎么了解。字幕君非常有趣。
CS问,如果pku能签约,我签不签,是否非去thu不可。我考虑一下,如果有机会还是抓住,先得有个大学上,虽然不能反悔。事实证明我想多啦......
最后一天去了鲁迅故里和柯岩风景区。在鲁迅故里喝了星巴克,结果11点吃不下午饭。柯岩风景区的湖水很清澈,波光粼粼,荡漾着我的心扉。
公布国家集训队候选队员名单。第一名非毛爷爷莫属啦。然后是YJQ(GD)、YYT等。这些dalao中只和其中两位真正有几面之缘,其中一位表示对此无意,于是我在等待YJQ(SC)的名字。9、10、11......怎么还没念到呢......嗯,不负众望。全场爆发出热烈的掌声~
二等奖,或者说Ag。似乎再高个2分就Au了。但是并没有,只能说功夫未到家。前100名上台领奖。我那一组共有三个妹子,其中一个萌萌的、个子小小的、头发长长的,是初三小妹妹。好惭愧......我初三好像主要在自我陶醉和伤春感时。去年暑假认识的YJ同学也和我在同一组。
WH讲话,提到一位SH小妹妹,6年级NOIP提高组一等奖,冬令营Cu,还用微信公众号分享自己每天做的数学题。好惭愧......
好像被一位中专的同学虐了......
大概就是这样。明天早上5:00就要起床。晚安。