10、第 10 章
商量定了之后,各自检查电脑的环境配置没问题,在网上翻出来一个往年的竞赛题。
ACM,全名国际大学生程序设计竞赛,英文名称IionalCollegiateProgrammingtest(检查ICPC)。
起源于1970年,后来由国际计算机协会主办,一年举办一届。主要是用来展示大学生的创新能力、解决问题的能力、还有在压力环境下编写程序和解决问题的能力,目前为止,已经是全球最具影响力的大学生程序设计竞赛。
ACM是以团队进行参赛的,每队最多有三个大学生组成,每年9-12月进行区域赛,每个区域赛的第一名能够参加全球总决赛。
总决赛的第一名能够得到一个奖杯,其余的参数队伍能够根据名次获得金牌、银牌和铜牌。并且决赛前十名的队伍能够获得高额的奖学金,第一名12000美元,第二名6000美元,第三名3000美元,第四名到第十名为1500美元。
竞赛题目一般为十个左右,题目为全英文,竞赛时间为5小时,一队三个人使用一台电脑,分工合作尽量快速而且正确的解决出更多的问题。
至于沈城和江信的玩一把,则是不进行分工,一个人直接负责把手里的问题进行简化、设计算法并且编程,他们两个虽然都是计算机系,但是他们学校的计算机系很多数学基础都是必修课,数学知识比得上一般学校的数学系学生了。
这种玩儿法之前他们也玩儿过,不过一般是沈城输的时候居多。
沈城这次对于这个还是很有自信的,虽然他有段时间没没接触这个了,但是以他现在的脑域,解决这种问题并且在脑海里模拟要快多了,所以赢了江信还是很有希望的,正好能一雪前耻。
算是一个挺经典的题目:有两堆石子,每堆石子有不同的数量,双方轮流取石子,可以选择两种取法:1,从任意一堆里取出任意数量的石子;2,从从两堆里取出相同的石子,最后取完石子的获得胜利。问题为:怎么才能一定获得胜利?
看着简单,但是涉及的数学思路却并不少。
沈城拿了纸笔先理思路,假设两堆石子的初始值是(x,y),一次取石子的个数为z。
......
最后可得,若z=x,则先手必败,否则先手必胜。
这些分析进行的很快,结果出来之后先设计了一番算法,然后直接开始敲代码,一个人做就是这点好处,每一步都是自己的分析,效率会高上不少。
最后一个字段敲下去,点击运行,沈城转头看向江信,刚刚好对上江信同样看过来的眼睛。
两人同时有些惊讶,转头去看对方的答案,最下方的输出栏里显示着相同的内容。
这下沈城是真的有点惊讶,他知道江信是挺聪明的,没想到聪明到这种程度,看来之前真的是应了一种说法:同样考了一百分,他是因为能考一百分,而江信却是因为卷子只有一百分。
江信却是眯着眼睛打量了一番沈城,开口的时候有些意味深长:“看来真的是士别三日当刮目相待。”
“知道就好。”沈城扬眉默认了他的这个说法。
他也知道自己最近和之前有些变化,其他人可能还瞒得过,但是江信朝夕相处,偏偏人又极其聪明,想要完全瞒过去根本不可能。
而且他也没打算瞒着,多累啊。
只要江信确认他就是沈城,他相信有些异样江信也绝不会对他怎么样。
顶多就是自己想要弄个明白。
******
中午去吃了饭,下午再过来的时候徐明杰已经来了,正坐在上午江信的位置上看代码,刘老师也在旁边,偶尔聊着什么。
听到声音刘淳老师回头看向他们,刘老师个子不高,带了个黑框眼镜,看起来很憨厚的样子。
沈城和江信先点点头打个招呼:“刘老师好。”
徐明杰站起身,转身椅坐在桌面上,和他们两个招呼,语气懒洋洋的:“好久不见。”
刘老师也笑眯眯的:“你们好,来了就坐吧。”
“嗯。”
江信先看向徐明杰,指了指他坐着的桌子,言简意赅的开口:“旁边去。”
“啧。”徐明杰摊摊手,往旁边挪了一个位置,低声嘟囔,“臭毛病。”他就没见过那个男生像江信这么龟毛,桌上的东西永远都是整整齐齐的,身上也是一点脏东西都不能有。
刘老师乐呵呵的看着他们几个,等他们安顿好了才开口:“总决赛马上就到了,你们几个都是什么目标啊?”
徐明杰先开口的,他个子不高,皮肤白净,栗色的卷发还是一张娃娃脸,说话却和长相不怎么搭,满满的傲气:“以我们几个的实力,第一名得努努力,但是金牌是一定没问题的。”
刘老师调侃了他一句:“呦,你竟然没有信心拿个第一名?”这可不像是徐明杰的风格,他不是一直自信的认为自己天下第一。
“没办法。”徐明杰摆摆手,“如果说一个人一队,那我肯定是第一名,但是还有他们两个嘛,还是要保守一点的。”
“哈哈。”刘老师笑笑转头看向沈城和江信,“你们两个呢?”
“第一名吧。”江信自己坐下把东西放好,清清淡淡的开口。
“不想当将军的士兵不是好士兵。”沈城点点头,“我也觉得第一名比较有奔头。”
刘老师听完神色半点没变,他带了这么多届ACM,见过的天才学生是真不少,脾气古怪点的也不是少数,相比较而言他们三个都算好的了,认真的点点头:“有这样的目标很好,但是既然大家的目标都是第一名,那训练可就得努力了。”
刘老师的神色郑重了一些:“而且之前你们几个的配合方式最好也改改,不然你们三个两个计算机系的,一个数学系的,这么好的搭配不用实在是浪费了。”
沈城暗自点点头,刘老师这么说都是好听的说法,他们之前的配合甚至可以说是没有配合,题目下来三个人分配,然后各做各的,三个人之间除了轮流使用电脑甚至没什么影响。
能在预选赛上赢得第一,没有使用任何技巧,纯粹是暴力碾压。
他们三个单体实力都很强,甚至刘老师都说过,比前几届的学生天赋要更好,所以之前允许了他们这样的做法,因为哪怕是这样的做法,预选赛都没什么问题,结果果真不出所料。
但是刘老师说的很对,这套法子想再拿到决赛上使用就很困难了,如果真的这么做,可能结果就像是徐明杰所说的,金牌估计没什么问题,但是第一名基本没戏。
江信和徐明杰显然也很清楚这一点,都看着刘老师点点头。
看着他们都认可了这个说法,刘老师拍拍手:“既然你们都同意,那我们就先找个题目练练手,这么长时间相信大家都有进步,刚好看看现在的水平,用实力说话,大家好心服口服嘛。”
“来啊。”徐明杰爽快的应了一声,娃娃脸有些兴奋,一脸的志在必得,“给你们看看我现在的水平,让你们输的心服口服。”
“好。”沈城和江信也点头。
“那分工就先按照最常规的组合,徐明杰数学上是最强的,你就负责将题目简化、数学建模,这个没问题吧?”
徐明杰比了个OK的手势:“放心,肯定准确又快速。”
刘老师点点头,看向沈城两个:“你们两个......”刘老师略微沉吟,“沈城负责代码实现,江信负责算法设计。”
两人一起点头。
“没问题就好。”刘老师笑眯眯的点头,语气还是那么不急不缓,“那就开始吧。”
也没找往年的题目,沈城来的时候带了几本书,直接在上面找一道就可以,难度不大不小,最适合看人的水平。
徐明杰虽说也学了编程,但是比他们两个水平还是差了一些,但是数学学得非常好。江信思维能力极强,对于算法的研究比较深入。沈城虽说生活上大大咧咧的,但是思维比较跳脱,语法学的很好。
徐明杰虽说人比较傲,说话也不中听,但是水平还是很足够的,大二就参加过IMO,也就是国际数学奥林匹克竞赛,并且拿下了一面金牌。逻辑思维能力很强,对于数学的理解很透侧,尤其是数学模型的构建,速度极快。
认真的样子看起来也没那么招人烦了,黑色的水笔下,字迹飞快的出现在纸上。
终于,最后一步落下,结论也出来了,颇有些自得的把结果递给江信:“看你的了。”
以他的估计,这道题即使不算难,他们两个根据他简化出来的问题设计好算法,然后再完成程序。两个人又不能同时进行的情况下,大概要半个小时左右,最起码二十五分钟。