第8章 【08】
动规全称动态规划,常用于处理多阶段决策问题。fangzexs上世纪50年代,贝尔曼等人提出最优化原理,动规应运而生。
吴升讲得不快,不知道是天生喜欢举例子还是说话惯于拖长音,总之慢慢悠悠的,ppt翻页的速度堪比蜗牛。
但是底下没人犯困。
林珑低着头拼命往笔记上写,旁边也在记录但明显更加手忙脚乱的徐亮伸着脖子看她的本子。而她写完最后一个字母后又抬眼去看前方屏幕,目光不打转,身子坐得笔直,仿佛不知道累。
也就忽略了,其他两位全都是一脸带着惊讶的凝神。袁天惯来笑嘻嘻的脸上是难得一见的严肃,邱博抿着唇一瞬不瞬地盯着投影,沉默的视线长时间不曾移开。
吴升又结束一道例题的讲解,目光悠悠晃晃地巡视全场,挑眉:“记住啊,最重要的就是抽离出重叠子问题和最优子结构,嗯?”
林珑握着笔,有点木地点头。
她其实宁愿吴升就这么一直讲下去。
但这显然不可能。日头渐渐西斜,就算吴升讲得再慢,143页的ppt也终于翻到了结尾。而他拍拍手上的粉笔灰,笑道:“已经给大家建好训练房了,里面十一道题是你们明天晚上之前的任务,周二我们会统一讲评,加油哦。”
熟悉的、以往每一次上舞台时那种被海水漫过的窒息。
身边传来椅子拖动的声音,众人纷纷从长桌旁站起往电脑那里走。她手心里都是汗,冰冰凉凉的,在桌底下擦了一把,机械地跟着起身。
-
forthecode提供多种多样的房间模式,命题房的设置在校队训练时常有。由教练从海量的题库中勾选特定的几道,供队员们进行专项练习。
当袁天目光落在屏幕上时,对于题目难度简直是毫不意外地呻吟了一声。
【a题:勇士决斗】
【国王发布高额悬赏,吸引世界各地n名勇士前来争夺。他们围成一圈,每场决斗在相邻的两人之间发生,败者淘汰离场。不同勇士间存在胜负关系克制,给定a[n][n],若a[i][j]=1,i一定能赢j;若a[i][j]=0,i一定会输j。】
【求所有可能赢到最后的人。】
[注:1≤n≤100]
……难搞。
就算n=5,比斗顺序都有无数种可能。可以1号跟2号打,4号跟5号打,哪边先出结果哪边先去和3号打。或者2和3打,4和5打,1在最后守关。再或者仍旧是2跟3先打,胜者打4,再胜者打1,再再胜者去打5。
一团乱麻。
更不用说n最大可以取到一百。
即使是征战过几年,对可能遇到的各种麻烦有心理预期,袁天一时间都没办法形成完整思路。他双手搭在键盘上,若有所思。
经历过刚才第一堂的理论课,他对这个过往成绩如死水被外界所有人轻视的校队产生了极大的好奇,尤其是对吴升此人的判定简直发生了翻天覆地的变化,进训练房的时候就有一种预感,果不其然,第一道就上难度。
袁天挠挠脑袋,心说也是够了,两天时间做十一道,难不成真的从今天就开始通宵死磕。他看回题,刚打算写个动态树试试,就见右侧成员列表忽的一个跳动,有一抹青涩又极显眼的绿色突兀地闪出。
他大惊,连忙去看。
下一秒就发出了一声尖叫。
“卧槽?!珑妹你你你ac了?!”
-
一声ac天下惊。
全屋的目光都瞬间集中到了林珑身上,震荡有,呆滞更有。吴升布置完任务就离开了房间不知去向,这会儿一帮男生面面相觑大眼瞪小眼,简直怀疑自己和她过的不是一个时间。
当事人比他们还懵。
林珑抓着鼠标,完全不敢相信发生了什么:“我……那个……我就是试一下……”
“我明白冯莎莎昨晚在朋友圈嚎的那句话了。你是天才。”袁天几步走到她身边,目光灼灼地盯着屏幕,“别停,你现在手热,趁着状态继续推。”
林珑下意识点点头,目光重新回到题表上。系统已经自动给她跳出了b题,是股票交易策略背景,她凭着对吴升所说的最优子结构回忆和自己模模糊糊的感觉,拼凑出了一套递归代码,32行的长度,往系统里一交,又过了。
四周再次不可抑制地响起一片吸气。
“……靠。”袁天喃喃,“a大来了也得疯。”
“两道难度评分在85以上的题……新手一次过?”
他揉了揉眼睛,又吸了口气,恍惚地飘回自己座位接着做题,临走前屈指敲了敲林珑放在桌面上的演算纸,感叹:“珑妹,你早点进圈就好了。”
林珑握着鼠标的手指一颤。
她能听到自己砰砰不止的心跳。
像山顶纵跃而下的瀑声。
两个小时后,训练室里彻底鸦雀无声。
因为林珑始终保持在十几分钟一道的过题频率,即使中间也难免有几次wa失误,但都被她很快地找到症结点纠正了过来,一路通关,平稳高效得不像话。
在她已经只剩一道题的当口,其余所有人,最快不过还余七道。
……差距大到不知道谁才是那个刚入门的。
在林珑开启最后那道题的时候,袁天等人不约而同地又围了过来。
这道题面只对林珑陌生,其他所有人都已经见过,原因无他,全场只有她一个人乖乖按照从a到k的题目顺序依次做。不像男生们经常会卡,所以做了a题做g题,做了i题做c题,哪道顺眼先做哪道,做不下去了就战略性撤退换另外一个柿子捏。
而这道k题,就是每个人曾经都尝试过,却被一再的wa搞得实在没脾气的。
左右已经明白不可能靠自己过关,既然周四总是得听吴升讲,还不如提前看看大佬有没有什么诀窍。
几人目不转睛地看着林珑点开这道题。
【k题:公主巡游】
【帝国继承人维多利亚公主举行了举世瞩目的成人礼,将要巡视王国的n个城池。所有城池构成一个凸多边形,给定它们的坐标a[n][2],公主所在的王都为1号城池。】
【若要求每个城池仅去一次,求公主完成巡视的最短距离。】[注:2≤n≤1000]
即使不是第一次见,众人还是牙疼似的抽了一口气。
……什么玩意都是。
连n的最大取值都比之前多一个0。
一千个城池大盛世!
袁天忍不住道:“珑妹,这道真的很邪门,逼不得已我连记忆化搜索都掏出来试了,还是捋不顺逻辑……”
林珑茫然:“什么是记忆化搜索?”
“……你不知道记忆化搜索?”袁天差点咬到舌头,“……哦,对哦,你刚入门。”
……可眼前人的实力真的很难让他记得这一点啊!!!
他定了定神,又问:“那你准备怎么做啊?不用记忆化搜索更不行的啊……”
林珑想了想:“就正常递归吧。从1出发,那只能去2或n。假设到2,下一步只能去3或n;假设到n,下一步只能去n-1或2——”
“……停停停!”袁天震惊打断,险些劈了音,“凭什么每一步只有两种可能?!公主可以往任意一个城池去的啊!”
“可是所有城池围成了凸多边形。”林珑见他迷茫,顿时有点慌,咬了咬唇,犹豫着小声说,“我觉得……要想总距离最短,路径连线就不能有交叉?”
“……”袁天直了眼,半晌才憋出来一句,“你这是……图形性质?数学定理?……怎么证啊?”
他撞撞邱博:“你能证吗?”
邱博一贯的沉默不怎么说话,闻言摇摇头。袁天还在现场百度这个不知道是怎么回事的性质,林珑已经按这个思路写好了代码,仍然很短,不过42行,再三检查语法没有错漏之后,小心翼翼又点了提交。
比系统判定更快的是吴升的嘴。
没人知道他什么时候又无声无息地回了来,在门边听了不知多久,眼下倚着门框,笑吟吟拍了几下手。
“精彩。不愧是我们的新生赛第一。”
而几乎是同一时间,屏幕上也跳出了结果。
第十一个ac于数道屏息中出现。
“ak!”袁天尖叫,“秀啊珑妹,allkill!”
是acm圈里的又一个术语。用来形容在一场比赛中十一道题全通的神迹。当然,在正式赛场上出现的概率无限接近于零,大家也就只能在训练中尝试一下。
但即使是训练,在如此难度的一套题中ak已经够不可思议,更不要提这还只是个新人!
袁天这回是真喊劈了:“珑妹你这是什么天赋啊!”
徐亮比他吼得还大声:“啊啊啊啊安安牛逼!”
吴升笑眯眯:“照这样下去应该很快就要升段了吧。”
林珑在一片堪比新生赛夺冠当夜的喧嚣里,抬手捂住嘴。耳畔人声时远时近,像是山谷深处的回音。
太让人哽咽。太值得人纵身一跃。
她在那一刻紧紧闭上眼,心底近乎祈祷般地默念——
如果这一切真的是梦。
上天啊,请让我永远永远都不要醒来。
作者有话要说:
题目改编自南阳理工oj和北大oj,动规解释参考百度百科~