| 主页>>在线阅读 |
| 《夜莺与神明[破鏡重圓]》 | TXT下载 |
| 上一页 | 下一页 |
第56章
叶语莺依旧有冲击年级前十和金牌的实力,但是她不得不在胁迫下清醒地沉沦,对一个骄傲的灵魂最残忍的摧残不过如此。
在程家人面前,她一切如常,班主任早就对她的成绩失望透顶,又打不通程明笃国内的电话,时间一久,也开始放任自流。
离程明笃决赛还有三个月的时候,她发去了最后一句祝福语,再之后,就彻底沉默,仿佛放弃了求生的本能一样。
直到初三的寒假来临前,她已经彻
底沦为葛洁的狗腿子。
程明笃的世界赛将近,比赛过后,如果程明笃拿到奖牌,他们之间就彻底划清界限。
在这种日复一日的压迫下,叶语莺时常回想到反抗,但是一想到反抗的代价,她就不敢了。
她只能继续扮演着葛洁那条最听话、也最沉默的哈巴狗。
日子就这样,在一种令人窒息的、缓慢的凌迟中,一天天滑向冬天。
初三上学期期末考试结束那天,素来温暖的蓉城下了一场罕见的大雪。
那天下午放学,葛洁又像往常一样,将她自己的,以及另外两个同伴的书包,全都理所当然地扔给了叶语莺。
“叶语莺,送我们到校门口,然后去街角那家奶茶店,买三杯烧仙草,送过来。”
葛洁颐指气使地命令道,然后和朋友们嬉笑着,两手空空地走在前面,享受着身后那个省冠军像个卑微仆人一样,背着三个沉重书包的“美景”。
叶语莺沉默地跟在后面,步伐沉重,眼神麻木。
这已经是她的日常。
叶语莺没有反抗,甚至没有一丝犹豫。她沉默地接过钱,把书包递给她们,一头扎进了外面那片风雪交加的严寒里。
雪花打在她的脸上,很快就融化成冰冷的水珠,顺着她早已冻得发紫的脸颊滑落。
她缩着脖子,在刺骨的寒风中,深一脚浅一脚地往街角走去。
葛洁她们在巷口有说有笑地等着她买烧仙草。
嬉笑打闹间,一个人影从巷子慢吞吞地走了出来。
葛洁立刻发作,借题发挥地怒声道:“让你去买个破奶茶都这么慢,是不是想冻死我们……”
她原本想一股脑把叶语莺数落一番的,可一回头,却瞬间看到叶语莺惨白着脸色,像个牵线木偶一样走了出来。
叶语莺的马尾被一只粗粝有力的手,紧紧拽住,她像一只被扼住脖颈的、待宰的羔羊。
而控制住她的,正是她身后那个男人。
男人的手,粗粝、黝黑,指节粗大,手背上布满了纵横交错的、早已愈合的陈旧刀伤。
此刻,这只手正像一把铁钳,死死地攥着叶语莺后脑勺的马尾,那狠辣的力度,让她被迫仰着头,露出一段脆弱而苍白的脖颈。
在这个男人面前,叶语莺眼神反而不是害怕到颤抖,而是一种死寂的、灰烬般的无望。
男人凶相之下散发着一股子令人作呕的气息,葛洁和同伴被这样气味瞬间扼住了呼吸。
那是一种混杂着劣质烟草、廉价酒精和常年不散的、阴暗角落里才会有的霉味的综合体,甚至,还带着一丝若有似无的、铁锈般的血腥气。
他的眼神浑浊,布满血丝,藏着狼一样的凶光,脑袋上,有一道从额角延伸到头顶的、丑陋的疤痕,像一条狰狞的蜈蚣,那里的头皮光秃秃的,再也长不出头发。
葛洁的咒骂,瞬间卡在了喉咙里。
“小畜生,翅膀硬了?给别人买东西不知道孝敬你老子?”
“你老子在牢里遭老罪了,你和你妈,一个都别想跑。”
叶建国开口了,声音嘶哑得像是两块砂纸在互相摩擦。他拽着叶语莺的头发,将她往前一扯,“拿了个什么狗屁冠军,就忘了谁是你老子了?嗯?”
“说,东西买给谁的?”
叶语莺吃痛,但是咬咬牙,一声不吭,眼神幽暗地看向葛洁的方向。
她用没有丝毫波澜的语调,清晰说道:
“买给她们的。”
她的视线,穿过风雪,准确无误地,落在了不远处那群早已吓得呆若木鸡的女孩们身上。
那一瞬间,葛洁脸上血色尽失。
叶建国顺着叶语莺的目光,缓缓地、像一头嗅到血腥味的狼一样,转过头去。
他那双浑浊而又闪着凶光的眼睛,慢悠悠地,在葛洁和她那几个跟班身上来回扫视。
那不是一种寻常的打量。
那是一种屠夫在估算牲口斤两的、充满了贪婪与算计的眼神。
他打量着她们身上价值不菲的羽绒服,她们脚上崭新的名牌运动鞋,以及她们脸上那因养尊处优而显得细皮嫩肉的、此刻却因恐惧而毫无血色的皮肤。
“哦?”叶建国松开了攥着叶语莺头发的手,将她粗暴地往旁边一推,然后慢吞吞地、朝着葛洁她们走了过去。
他每走一步,葛洁都感觉自己的心跳就漏掉一拍。
叶语莺眼神冰冷,适时补充了句:“她们身上的现金,挺多的。”
葛洁身边的两个女孩,已经吓得快要哭出来了,身体抖如筛糠。
他停顿下来,咧开嘴,露出一口被烟熏得焦黄的牙齿,笑容狰狞而又充满了威胁:
“你们说,该怎么算啊?”
“叔……叔叔,对不起,我们错了……我们跟她开玩笑的……”葛洁的声音抖得不成样子,平日里那份嚣张跋扈的气焰,此刻早已荡然无存。
“开玩笑?”叶建国冷笑一声,他猛地伸出手,一把揪住了葛洁那件名牌羽绒服的衣领,将她拽到自己面前,“老子看着像是在跟你们开玩笑吗?”
“啊——!”葛洁身边的两个女孩吓得尖叫出声。
叶建国暴戾地回头瞪了她们一眼,“都他妈给老子闭嘴!把身上值钱的东西,现金、手机,全都拿出来!”
叶语莺看着自己父亲的模样,心知他不是在给自己出头,而是——
在明火执仗地抢劫!
三个人被吓哭了,连忙将自己身上所有的钱和手机都交了出来,只求能尽快脱离这个魔鬼的掌控。
叶建国拿到东西,随意地在手里掂了掂,脸上露出满意的、贪婪的笑容。他松开葛洁的衣领,像扔垃圾一样将她推开。
“滚!”他啐了一口唾沫在雪地里,“下次再让我看见你们几个,就不是这么简单了!”
葛洁和她的同伴们如蒙大赦,连滚带爬地,头也不回地冲进了风雪里,瞬间就跑得无影无踪。
巷口,瞬间又恢复了死寂。
叶建国将抢来的钱和手机塞进自己那件油腻的夹克口袋里,然后转过身,重新走向那个从头到尾都像个木偶一样、一动不动地站在原地的叶语莺。
他看着她那张毫无血色的、麻木的脸,眼神里没有半分父女之情,只有一种看待私有物品般的冷漠与占有。
“行了,你也别想跑。”他再一次,粗暴地抓住了她的胳膊,力道之大,几乎要将她的骨头捏碎,“你那个死人妈早晚被我抓到!到时候就来陪你!”
“跟我回家!”
他不再废话,像拖拽一件行李一样,将叶语莺瘦弱的身体,强行拖拽着,塞进了巷子口那辆破旧不堪的、不知道从哪里冒出来的面包车里。
车门被“砰”的一声关上,隔绝了所有的光。
叶语莺坐在黑暗而充满霉味的车厢里,听着引擎发动的轰鸣声。她透过肮脏的车窗,看着那些熟悉的、正在飞速倒退的街景。
她终究知道,叶建国出狱的那一刻,她就会回到那个最初的、最根本的地狱。
只不过,回到地狱之前,她顺带用一个真正的恶魔,吓跑了那个校园里的小恶魔。
葛洁那些小打小闹,在叶建国面前根本不值一提。
毕竟,她生理学上的父亲,才是真正的罪犯。
面包车在泥泞的乡间小路上颠簸着,将叶语莺带离了那个她既熟悉又陌生的蓉城,驶向她童年记忆里那片灰色、压抑的“家”。
车子最终停在了一栋破败的、墙皮大面积脱落的自建房前。这里,就是她的“老家”。
一推开门,一股混杂着潮湿、霉变、劣质烟酒和许久未散的汗酸的、令人作呕的气味,便扑面而来,瞬间将叶语莺包裹。屋里光线昏暗,家具破旧,地上随意地扔着酒瓶和烟头。
这里,才是她的牢笼。
叶建国在拿到从葛洁她们那里抢来的钱后,很快就投入到了日复一日的赌局和酒局中。而叶语莺,则成了他专属的、免费的奴隶。
她每天天不亮就要起床,为宿醉未醒的叶建国准备早饭。要清洗堆积如山
的、散发着恶臭的衣物,打扫这个永远也打扫不干净的、如同垃圾堆一样的屋子。
她那双用来奔跑、曾被教练们视为珍宝的腿,如今每天都浸泡在冰冷的、带着洗衣粉味道的肥皂水里,或者跪在肮脏的地板上,用抹布一遍遍擦去地上的污渍。
她的荣耀,成了他炫耀的资本和待售的商品。
叶建国没收了她身上的全部现金,连同她那台新买的智能手机。
他会带着她,去他那些狐朋狗友的牌局上炫耀。
“看见没?我女儿,叶语莺,全省跑得最快的女娃!”他会一边喝着劣质的白酒,一边用力地拍着叶语莺的肩膀,那力道大得让她生疼,“以后可是要当奥运冠军,挣大钱的!”
那些和他一样的、面相不善的男人们,会用一种混杂着惊奇、贪婪和不怀好意的目光,肆无忌惮地在她身上打量。
叶语莺会沉默地站在角落里,像一件被估价的物品,忍受着这一切。
她与外界的一切联系,几乎都被切断了。
程家必定是知道她失踪的,姜新雪本就想把她这个拖油瓶扔回老家,她被叶建国抓走,姜新雪只需要待在宅子里不出来,就可以永远远离这个人厌恶的丈夫。
在叶建国外出赌博的白天,会把她反锁在家里,为了防止她逃跑,还特意加固了门窗。
她听不到任何来自外界的声音,闭上眼,脑海里尽可能去回忆那些还残留在脑子里的知识。
她担心,时间一久,脑子就生锈了。
程明笃还在等她交出安身立命的答卷,外婆还在梦里,让她跑到有光的地方去。
*
开春,葡萄牙,里斯本。ICPC全球总决赛现场。
如同体育馆般的竞赛大厅里,死一般的寂静,巨大的电子屏幕上,倒计时正一秒一秒地归零。
空气中,只有数百台电脑主机散热风扇发出的、低沉的嗡鸣,以及键盘被以惊人速度敲击时,那密集如暴雨般的“哒哒”声。
来自全球各大赛区的140支顶尖队伍,每队三人,正围绕着唯一的一台电脑,进行着长达五个小时的、极限的脑力马拉松。
比赛,已进入最后一个小时。
现场巨大的电子积分榜,已经变成了灰色——封榜。
这是ICPC最残酷也最刺激的规则,最后一小时,所有队伍的解题情况都不再对外公布,最终的胜负,将成为一个悬念,直到颁奖典礼才会被揭晓。
程明笃的队伍,在封榜前,与另外几支来自世界顶级名校的队伍,以9道题的成绩,暂时并列第一。
而此刻,所有人的目光,都聚焦在了题板上那道依旧是灰色的、代表着无人解出的“J题”上——那是一道极其复杂的计算几何题。
(解题过程可选择跳过,不影响情节。)
题目背景:在一个二维平面上,分布着N个互不重叠的、由简单多边形代表的“居住区”(N可以高达10万)。现在,某科技公司计划发射M颗“通讯卫星”(M也可以高达10万),每颗卫星的信号覆盖范围都是一个完美的圆形。
题目要求:给出所有“居住区”的顶点坐标和M颗卫星的坐标及其信号半径。要求程序能够快速回答一个问题:对于每一颗卫星,它的信号完整覆盖了多少个“居住区”?
N和M都高达10万。如果采用最笨的办法——对于每一颗卫星,都去遍历所有N个居住区,并进行一次复杂的“完整覆盖”判定,那么总计算量将是M*N(即10万*10万=100亿次)。
竞赛计算机的单秒处理能力约1亿次,所以计算机处理时间是100秒,但是这时间远远超过了ICPC题目通常给出的1-2秒的时间限制,而且这种解法没有技术含量,丢失了竞赛的意义。这个解法提交上去,得到的结果一定是“超时”(TimeLimitExceeded,简称TLE),即解答失败。
这一道题的难点不在数学思想,而是如何在计算机的能力内在短时间内解决大规模数据,这只能从算法的角度去优化,在有限的计算机运算能力之下,高效完成任务。
程明笃的队友,现在都停下了手中的动作。
因为常规解法动辄需要上千代码量,这不是体力竞赛,必须要确定思路再行动才更加有效。
“首先不可能走时间复杂度这么高的方法,远远超时。”负责变成的队友神情有些焦灼,但是他们队伍呈现的状态还是较为稳定的。
程明笃作为队长,更是三人中最为平静的,他靠在椅背上,闭上了眼睛,手指在桌面上,无意识地、有节奏地轻轻敲击着。
那张清隽的脸上,没有丝毫的紧张,只有一种近乎冷酷的、绝对的专注。他仿佛已经抽离了这个嘈杂的赛场,进入了一个只有纯粹的算法世界。
突然,程明笃敲击的手指停住了。他睁开眼,那双总是深邃沉静的眼眸里,在那一瞬间,闪过了一道洞悉一切的、令人心悸的璀璨光芒。
他直接拿起白板笔,在旁边的小白板上,以一种快得惊人的速度,画出了一系列辅助线和几何模型,构建了一个所有人都没想到的、全新的坐标系。
“我们别再纠结‘面在不在圆里’,”他的笔尖在白板上飞舞,“问题的核心,是‘最远点’。我们要做一张‘查询地图’,把整个平面预先分割,而不是等查询来了再去计算。”
他首先运用“最远点Voronoi图”的思想,为10万个“居住区”,各自生成了一张“谁离我最远”的答案地图。
他将这10万张地图叠加在一起,形成了一张包含了天文数字般信息的、极其复杂的“查询地图”。
运用“平面点定位算法”,为这张“查询地图”建立了一个查询引擎。
最后,当题目给出M颗卫星的坐标时,他们要做的,只是把每一颗卫星的坐标,一个一个地输入事先建立的“查询地图”里。
系统会瞬间告诉他,对于这颗卫星,1号居住区最远点是A,2号是B,3号是C……他们只需进行简单的距离判断,就能得出最终答案。
程明笃在白板上,用短短几十秒,清晰地勾勒出了这个堪称天马行空的、宏伟的算法框架。
他那两位同样是顶尖天才的队友,在最初的震惊过后,立刻领会了这个思路的精妙之处。
但紧接着,那个负责编码的队友,立刻指出了这个计划中最致命的、也是最现实的难题。
“思路很巧妙,但这个实现难度太高了!”他的神情凝重起来,“光是构建Voronoi图时,计算那些由垂直平分线构成的交点,就会涉及大量的浮点数运算。double的精度误差是会累积的。只要有一个交点因为精度问题偏离了哪怕只偏离10^7,整个数据结构的拓扑关系就全错了,后面的所有查询,都会是垃圾结果。这道题的测试数据,一定是用最刁钻的方式,卡着我们精度的。”
这就是计算几何竞赛中的“魔鬼”——精度问题。它像一个幽灵,能让你明明拥有了全世界最正确的思路,却仍然写不出结果可接受的代码。
然而,程明笃似乎早就料到了这个问题。他的脸上,没有露出什么意外。
他拿起白板擦,擦掉了刚才画的一个辅助圆,然后看着两位队友,用一种异常冷静的语气说道:
“我知道。所以,我们不用double。”
队友愣住了:“不用double?那怎么计算交点和距离?”
“用我之前封装过一个几何库模板,所有的坐标点,我们全部用整型(longlong)来存储。所有涉及方向判定、点在线的哪一侧、内外关系等核心的几何判断,全部用基于向量的叉积和点积来计算。这样,我们就可以在整个建图过程中,从根本上避免任何浮点数的比较,保证所有拓扑关系的正确。”
“那距离呢?”数学队友追问,“最后一步判断‘最远点’和圆心的距离,必须要开方,一定会产生浮点数。”
“对,”程明笃点头,“但那已经是我们唯一需要动用浮点数的、最后一步了,但是我们不需要真的开方,用平方来进行比较,将精度误差的风险降低。”
题目上的沟壑,
如今他们用数学来一一填平。
程明笃负责在白板上,用他那强大的空间想象力,处理最复杂的逻辑和边界情况。
数学队友负责将程明笃的思路,转化为一行行严谨的数学推导,供编码的队友参考。
时间,来到最后一分钟。
“提交。”程明笃的声音此时已经掀不起一丝波澜。
对于真正能参加这场决赛的人来说,一道题得以巧妙解决,在出结果的瞬间就一直差不多知晓了。
队友按下提交键。全世界的目光,都聚焦在了他们队伍的屏幕上。
旋转,等待,判定……
当那个代表着“通过”的、绿色的“Accepted”字样,在屏幕上亮起的瞬间——
全场响起了雷鸣般的掌声和惊呼声!
一个工作人员微笑着,拿着一只代表着“J题”的、独一无二的金色气球,走到了他们的座位旁,将它系好。
在整个赛场数百个五颜六色的气球中,这只金色的气球,如同胜利者加冕。
程明笃的队伍,在比赛结束前的最后几秒,成功解出了全场最难的一道题,几乎锁定了胜局!
颁奖礼上,主持人用激昂的声音,揭晓了那最后一小时的悬念,并最终喊出“20XX年ICPC全球总决赛世界冠军——来自MIT的‘InfiniteRecursion’队时,程明笃和他的队友们,在他二十岁不到的年纪,一起站上了那个属于全世界最聪明大脑的领奖台。
……
当晚,颁奖典礼结束后的酒店房间里,程明笃刚结束了和团队的庆祝。
正欲查看邮件,问问叶语莺的近况。
就在这时,他的私人手机,突兀地震动了起来。
是一个来自国内的、管家的号码。
他接起电话。
叶语莺的父亲出狱了……
-----------------------
作者有话说:50个~
这个解题思路啊,如果有更懂算法这方面的朋友可以提出来更优的可能性,以后还能改,毕竟天才主角有时候还是受限于作者的认知(本人实在不学无术QAQ),等我以后更理解这些了再修改也可以……