陪你成为光(6)
徐亮:“我???”
他差点从椅子上摔下去。
认真的吗?!让他这个编程界的绝世菜鸟写?!
而且——
“安安?你在说什么?暴力解……不可能在规定时限之内的啊!”
如果把眼前这道题比做所有人都耳熟能详的高斯的故事。
那么林珑此刻和一班拼的,就是谁先找到方法实现(1+100)×50=5050。
而暴力解……就相当于简单粗暴地1+2+3+4……+100=5050。
ACM竞赛不仅要求程序正确,也要求性能,提交的代码必须能在规定时间内计算1000个测试用例,超时直接判TLE,Time Limited Exceeded时间超限,即使答案全对也不算通过此题。
暴力解的算术逻辑绝对是更好懂,然而等它算出来,八个规定时限都过去了!
他就算再不懂竞赛,也知道此刻想赢用不得暴力,用了也白搭!
然而林珑一咬牙:“不,就用暴力解!”
她来不及多说,起身让出唯一的那台电脑,扯过一张纸埋头在上面速推框架,只匆匆留下一句话。
“没事,你先试试,写不出来就等会儿交给我。”
话是这么说,但徐亮清楚以目前这种双方在刀刃上抢时间的情态,他要是真等安安等会儿再来写,这比赛基本也就玩完了。
他狠狠一吸气,坐到电脑前,开始拼命扒拉脑子里残存的那点儿C语言遗迹,int数组for循环闭着眼睛往上堆,堆出一个最草履虫的傻瓜式程序,把出题人智商按在地上摩擦的那种。
但饶是如此,还是越写到后面越吓人,像是用积木搭高塔,每新放上一块都可能引起从顶层到地基的全面坍塌。这边好不容易歪七扭八地搭好,那边林珑正好抬头。
徐亮立刻从电脑前跳起来:“安安!来!”
他觉得自己出品的这份代码从头到尾都透着天真单蠢,然而林珑过来匆匆看完,琉璃般的眼睛微微一亮,脱口而出的居然是:“可以的!”
徐亮:???
他险些以为自己听错了,刚要出声,就见林珑迅速坐回电脑前,然后——竟然又对着写满框架的纸开始敲全新的第三份代码!
徐亮到嘴边的问题咕咚一声咽了回去。
他肝都颤。
他滴个神啊!!!他要不要告诉安安,就在他刚才吭哧吭哧编暴力解的时间里,一班已经疯狂提交了不下八次代码,简直是举队踩在他心脏上哗哗蹦迪,而且那黄色进度条一次比一次走得远,最后的一次甚至是在大约90%的位置才突然跳WA!
那代表着一班已经把手中的程序修到了接近完美,随时都可能攻下最后10%的测试用例!
这种节骨眼上,安安她——居然在重起炉灶!!!
徐亮很恐徐亮很方,徐亮觉得这简直是在玩火,然而余光无意间扫到台下,居然看到台下沈庭谦在点头!
那位如竹如玉的校队队长,坐在第一排观众席微微倾身,专注的目光紧紧盯着他们这里,眸中隐隐流转的,竟然是赞赏的眼神!
徐亮:?!
这个世界疯了吗?!
林珑此刻却全然不知她已经成为全场的焦点,她所有心神都放在比赛上,双手在键盘上疾速敲击,编译完毕,点击运行!
她点击的是第三份代码的运行键。
但却让前两份代码同时弹出了运行框!
然后徐亮就果不其然地看到,同样的测试用例,安安先前写的那份代码秒出一连串运行答案,而自己那乌龟爬的暴力解,足足卡了三秒钟才开始往外吐结果。
……而且有些结果,还跟安安的明显照不上。
徐亮呻。吟:“看吧……我就说我不行……”
“不是的!”林珑一口截断,她的脸上映着满台灯辉的华彩,眼底熠熠生光。
“这才是我们想赢的关键!”
就在她话音落地的同时,屏幕上终于出现了第三张计算框,显示出来的内容不偏不倚,正是那两份代码对同样的测试用例给出不同运算结果的所有异常!
林珑几乎是瞬间就照着这些异常去修她最开始的代码。
同时给了仍然晕头转向的徐亮一句解释。
那是韩泉学长说过的,ACM人在万不得已的情况下使用的保命绝招——
“暴力解虽然不可能通过规定时限的考验,但它有一个任何高深算法都不能抹杀的优点。”
“绝对正确!”
在高斯的那个年代,高中生都不一定具有独立推出(1+100)×50=5050的思维能力。
但哪怕让一个小学生坐那儿拿笔硬算,最终也能得出1+2+3+4……+100=5050!
所以,既然她不能直观感知自己的抽象逻辑哪里还有欠缺。
那么,就用一份不能拿去交题但绝对正确的暴力解,去对比查出真正要交的那份代码错在了何处!