盼望已久的冬假终于来临,学生们的心情也随之快乐了许多。终于考完了所有的大试小试,卷子也讲完了,一大包作业也背回家了——这不就跟学校说拜拜了吗!
冬日的暖阳透过窗帘洒进了房间,虽然是隆冬,但鹿城的天气依然不算寒冷,空气中带着些许湿气,轻轻拂过脸庞,像是春天提前来临的讯息。
姜明珺伸了个懒腰,又在床上滚了滚。明明已经醒了,却依然不急着起床。她懒洋洋地待在被窝里,只眯着眼睛看着窗外——
街道上绿意盎然的行道树依旧保持着生气,枝叶在温暖的阳光下闪烁着微光。虽然鹿城的冬天没有雪花,跟帝都比起来,少了些许节日的气氛,但她还是很满意今年家里留在鹿城过年的决定。
她随手摸到床头的闹钟,昨晚她特意取消了平时的定时,发现现在竟然已经接近十一点,才恍若惊觉,心想:“难怪肚子有点饿。”
早上的懒散和舒适让她忘记了时间的流逝。她轻轻地掀开被子,想要起床,却又觉得这个床的温暖太过诱人。
“哥,哥——”她喊了一声,声音带着几分撒娇和依赖。
没有回应。
她才意识到,姜明祎应该是回学校上竞赛课了。
确实,冬假的时候竞赛生也需要照常返校的,只有新年那几日可以休息。她心里一阵无奈,主要是姜明祎这个人上竞赛课的理由真的很奇怪:比如,他不是因为自己真的喜欢,或者为了升学加分才搞竞赛,他只是因为朋友都参加了,自己也跟着参加,美其名曰,“舍命陪君子”。
听听,这多没有主见,要是她,这么花时间的事情她才不参加。有这时间,去书店的咖啡角,翻翻新到的书,这才叫惬意。
姜明珺揉了揉眼睛,懒洋洋地窝回床上,觉得自己也不应该赖在床上太久。没哥哥帮她拿吃的,她只好决定自己动手了。她翻开被子,懒洋洋地从床上爬起来,走向厨房。看着冰箱里剩余的食材,那就做个简单的三明治吧!
早餐做好了,她坐在餐桌旁,打开电视,随意放着一些无聊的综艺节目,全当背景音。她一边吃,一边想着老哥在学校吭哧吭哧皱着眉头听课受苦的样子,不禁噗嗤一下笑出声来:哥哥是舍命陪君子了,但顾梓聿应该如鱼得水、乐在其中吧?反正他就是纯纯一个大变态,也不知道他的脑子是怎么长的。
这些年,姜明珺跟着他们俩一起长大,那些顾梓聿令竞赛党“闻风丧胆”的光辉事迹她早已倒背如流:
顾梓聿因为超常的天分,在还是小学生的时候就和中学生一起上竞赛课,开始超前学习竞赛知识。初二时,他拿到了物理奥赛 CPhO 全国一等奖,入选了国际物理奥林匹克竞赛 IPhO 的国家集训队。要知道,国际物理奥林匹克竞赛是世界上最高级别的竞赛,主要面向不超过20岁的中学生,但还在读初中的顾梓聿却做到了。
更变态的是,顾梓聿在集训期间坚持做数学奥赛题,其间请假参加数学奥赛 CMO 决赛,又获得了全国一等奖,入选了数学国家集训队。
而这,不过是他初二上学期的事。
最令那些苦命的竞赛党难以置信的是,在两个国家集训队封闭训练时间部分重叠的情况下,顾梓聿靠着部分自学、请假考试,最终在两个集训队都留到了最后:他是数学 IMO 国家队的六分之一,和物理 IPhO 队的五分之一。若不是最终比赛时间冲突,导致他不能同时参加两项竞赛,他很大概率会同时出现在数学和物理两个学科的国际奥赛中。
最终,顾梓聿选择了留在整体实力较弱的物理国家队,而数学金牌的竞争者们则应该很庆幸自己少了一位劲敌。
在竞赛圈里,他的名字成了一个传说。当时,顾梓聿和4名队友赴索伦参加第43届国际物理奥赛,一名索伦队的带队教练还向他打听“认不认识华纳一个很有名的、在数学竞赛方面很强的Gu”。当得知“Gu”就是眼前这个少年时,他还非常疑惑地询问,是否“Gu”走错了赛场。
而顾梓聿在物理竞赛中同样捍卫了他的名声:他在368名选手中获得了金牌第一名。
更夸张的是,顾梓聿在初一和初二时参加的全国信息学竞赛NOI,都入选了国家集训队,只是没有参加后续的IOI。
要知道,IOI、 IMO 和 IPhO 的参赛时间都是背靠背的!也就是说,假如时间精力允许,顾梓聿能同时参加这三项竞赛的话,同时拿到三枚金牌也不是不可能。即便如此,顾梓聿也已经在数学、物理和信息学领域展示了极高的天赋和跨学科的才能。
顾梓聿的竞赛履历堪称传奇,这样金光闪闪的履历背后,他付出了多少,姜明珺看在眼里。虽然顾梓聿在她面前更像一个宽容的大哥哥,但她知道,实际上他是一个对自己要求近乎苛刻的人,这个性格在学术领域也许能有非凡的成就,但他也需要一个能劝他“适当放松”的人,就比如哥哥姜明祎的存在,有点像顾梓聿的心灵按摩师——他更轻松幽默,更能让人喘得上气来。
姜明珺时常想,像顾梓聿这样的人,将来就应该去做基础科学研究,用那种极端的专注力、坚持和探究的精神,解决限制人类发展的科学难题,推动学科的进步和科技的飞跃式发展。
总感觉这样的人的存在,才是人类世界珍贵的财富啊。
人类世界珍贵的财富现在正在焦头烂额中。
倒不是因为竞赛课的强度,纯纯是因为宋熙和——顾梓聿觉得师兄把自己当成了一个准职业小提琴家来培养,该说不说,师兄的成就高,对他的期望更高,简直有点望子成龙的感觉了。
吴老师的态度已经很明确了:除了乐团排练,他现在就是跟着师兄混,但宋熙和这个人真的是闲不下来,在结束了那么繁忙的巡演期之后,他居然每天仍然转的像个陀螺一样。这不,自从第一次见面到今天为止,不过10天,但他们已经见过三次了。
原本他对自己这个寒假的安排只是学校的竞赛课和乐团排练,也因此,他还存了几分可以有闲暇时间和姜明祎去打几场球的“非分之想”。没想到,现在看来纯纯是妄想。
放假到现在,他除了第一个星期天,没晚于过七点起床——多悲惨的假期,顾梓聿已经习惯了。
早上起来先练琴,九点准时到初中部参加信竞的课。十二点最晚十二点半去食堂吃饭,下午按需点课,首先保证师兄的小课,要是师兄不召唤他,他再在物竞/数竞/化竞的课堂上随机刷新出现。
机房内,虽然是大白天的,仍然拉紧了窗帘,室内白色的日光灯照亮了整齐排列的电脑,学生们三三俩俩地坐在一起。屏幕上闪烁着熟悉的代码编辑器以及学校内部的在线评测系统。房间里弥漫着淡淡的咖啡味——这是机房内唯一被允许带进来的“战斗口粮”。
墙上贴着几张醒目的红字标语:
“独立思考、不惧挑战!”
“要么AC,要么重来!”
“算法是一种思维方式。”
讲台的整面白板上写满了各种算法公式、推导过程和伪代码,右半边还残留着模糊的状态转移方程和图论问题的手绘示意图。进门的桌子上摆着好几本厚厚的参考书:《算法导论》、《计算机程序设计艺术》、《挑战程序设计竞赛》,也不知道是谁的,忘记带回去了,在这儿放久了,也就随之成了公用的了,供大家随时翻阅。
顾梓聿和姜明祎常常是一起到的,但张铎总是悄无声息地就已经坐在那里了,谁都不知道他究竟是什么时候到的——难怪他管钥匙呢。然后机房陆陆续续就有人来,大家都很自觉地,来了之后就安安静静地坐在那里开始刷题。傅尧肯定不是最早一批来的,但他也不是最后一个,迟到一哥总是方灵烨。
大家的风格各不相同,有人算得飞快,像是在与时间赛跑;有人停顿许久,陷入沉思,然后突然猛然敲下一行代码。
除了方灵烨。
这小子是真的聒噪,机房里除了键盘敲击声,就是他喃喃自语的声音:“这个 f(n) 到底能不能拆成 f(n-1) + f(n-2) 这种形式?如果可以,那就是 DP,否则可能要用数论技巧……”
他完全沉浸在自己的世界里,幸好周围大家都很nice,没人想把一直发出背景音的他扔出去。
张铎算是冷静型的,他总是戴着森海塞尔的降噪耳机,已经提交了十几次的题,每一次失败都会在代码旁边留下注释:“TLE 可能是 log 的优化不到位?”、“WA,可能是边界没考虑?”他像个机器一样有条不紊地调试代码,直到那行绿色的“Accepted” 终于出现在屏幕上,他才轻轻舒了一口气,揉了揉眼睛,开始看下一道题。
姜明祎的风格算是暴力流,用他的话来说就是“先写个能跑的”。看到一道题如果没有思路,他通常都是“能写暴力就写暴力”,不管算法最优解是什么,先写一段跑起来再说。
“过了吗?”顾梓聿冷不丁甩来一句。
“WA了。”姜明祎摸摸脑门,叹了口气。
“优化了吗?”
“在优化呢,把三重循环改二重,直接在外层循环计算和,避免 O(n?),时间复杂度会好点。”
改完,他再次提交。结果还是 WA,他叹了口气,抓了抓头发,朝屏幕翻了个白眼:“我的生命又浪费了五分钟,梓聿,你帮我看一眼呗,就求个最大连续子数组和,这个要怎么做啊?”
“这么经典的算法问题求 Maximum Subarray Sum,你是不是上课没听?暴力枚举肯定不行,可以用分治法、前缀和或者动态规划,时间复杂度逐个递减,你选一个吧。”
顾梓聿看着腆着脸凑上来想直接看答案的好兄弟,十分冷酷地转过头:“算法导论里有很详细的解释,自己看书去。”
姜明祎看着顾梓聿的屏幕,直接念出声来:“…某城市有 N 个工厂(编号 1~N),M 个商店(编号 N+1 ~ N+M),需要运输货物。每个工厂最多可以生产一定数量的货物,每个商店需要一定数量的货物。运输货物的费用由路径的单位运费决定,求如何安排运输,使得在满足所有商店需求的情况下,总运输费用最小。”
“这是个网络流问题,啊,我最讨厌网络流了…你模要怎么建?”
“这是典型的最小费用最大流,需要在最大流的基础上,增加边的费用,找到总费用最小的最大流方案。首先需要添加超级源 S,向所有工厂连边(容量 = 产量),然后添加超级汇 T,所有商店向 T 连接(容量 = 需求),用差分约束系统 SPFA 或者 Dijkstra 计算最短费用路径,用 EK 或 Dinic 增广路径求最大流。”
“好的好的,明白了。”姜明祎连忙点头表示自己听懂了——其实他并没有听懂,但为了不让旁边这个疯狂算法怪继续在自己耳边啰嗦下去,他只能装作理解并完全赞同顾梓聿的解题思路,好让他老人家心满意足地回到自己的草稿纸中去。
该说不说,人比人气死人,今天的训练题一共就5题,他俩一起到的,他还在第2题,顾梓聿已经做到最后一题了。虽然目标是尽量在规定时间内完成尽可能多的题目,大家都在埋头苦干。但毕竟规定时间是5个小时呀,顾梓聿你能不能做个人!
傅尧专注地盯着自己的代码,他用的是 Dijkstra,但某个测试点始终报错,磨了很久还过不去,他忍不住低声自问自答:“难道有负权边?可题目说不会有啊?”
顾梓聿在一旁听到了,随口说了一句:“不会是 0 作为权值吧?如果有 0,你 Dij 可能会出问题。”
傅尧愣了一下,迅速修改代码,提交——Accepted!
他不禁心悦诚服地长出一口气:顾梓聿果然还是强。
旁边的黄颖听到顾梓聿的提示,看着自己始终没有思路的题目,还是忍不住发问:“顾梓聿,你动态区间最值查询用的是线段树还是树状数组?”
顾梓聿一边看着自己的伪代码脑子飞速转个不停,一边答道:“看你怎么考虑了,树状数组应该更快,但如果是动态区间修改的话,树状数组可能不太好扩展。你可以两种都试试,看看哪个更适合。”
“对了黄颖 ,”姜明祎插了句嘴,“待会儿做出来之后记得分享一下啊,我还没做到那儿呢。”
黄颖点点头,站起来伸了个懒腰,又重新回到座位上认真钻研。
“诶,彭昱呢?怎么没看见他?”姜明祎磨了会儿洋工,突然意识到好像冬假都没看见彭昱的影子。
“他请假回家过年了,可能开学前会回来的早点儿。”张铎的声音闷闷地响起,“顾梓聿,你做到第几题了?”
整间机房里的耳朵都竖了起来。
顾梓聿不好意思地笑了笑:“我今天只待一个上午,所以比较赶哈,你们慢慢来。
【当前章节不完整】
【阅读完整章节请前往原站】
【ggd8.cc】