您现在阅读的是
303文学www.303wx.com提供的《夜莺与神明[破鏡重圓]》50-60(第14/23页)
最后,当题目给出M颗卫星的坐标时,他们要做的,只是把每一颗卫星的坐标,一个一个地输入事先建立的“查询地图”里。
系统会瞬间告诉他,对于这颗卫星,1号居住区最远点是A,2号是B,3号是C……他们只需进行简单的距离判断,就能得出最终答案。
程明笃在白板上,用短短几十秒,清晰地勾勒出了这个堪称天马行空的、宏伟的算法框架。
他那两位同样是顶尖天才的队友,在最初的震惊过后,立刻领会了这个思路的精妙之处。
但紧接着,那个负责编码的队友,立刻指出了这个计划中最致命的、也是最现实的难题。
“思路很巧妙,但这个实现难度太高了!”他的神情凝重起来,“光是构建Voronoi图时,计算那些由垂直平分线构成的交点,就会涉及大量的浮点数运算。double的精度误差是会累积的。只要有一个交点因为精度问题偏离了哪怕只偏离10^7,整个数据结构的拓扑关系就全错了,后面的所有查询,都会是垃圾结果。这道题的测试数据,一定是用最刁钻的方式,卡着我们精度的。”
这就是计算几何竞赛中的“魔鬼”——精度问题。它像一个幽灵,能让你明明拥有了全世界最正确的思路,却仍然写不出结果可接受的代码。
然而,程明笃似乎早就料到了这个问题。他的脸上,没有露出什么意外。
他拿起白板擦,擦掉了刚才画的一个辅助圆,然后看着两位队友,用一种异常冷静的语气说道:
“我知道。所以,我们不用double。”
队友愣住了:“不用double?那怎么计算交点和距离?”
“用我之前封装过一个几何库模板,所有的坐标点,我们全部用整型(longlong)来存储。所有涉及方向判定、点在线的哪一侧、内外关系等核心的几何判断,全部用基于向量的叉积和点积来计算。这样,我们就可以在整个建图过程中,从根本上避免任何浮点数的比较,保证所有拓扑关系的正确。”
“那距离呢?”数学队友追问,“最后一步判断‘最远点’和圆心的距离,必须要开方,一定会产生浮点数。”
“对,”程明笃点头,“但那已经是我们唯一需要动用浮点数的、最后一步了,但是我们不需要真的开方,用平方来进行比较,将精度误差的风险降低。”
题目上的沟壑,
如今他们用数学来一一填平。
程明笃负责在白板上,用他那强大的空间想象力,处理最复杂的逻辑和边界情况。
数学队友负责将程明笃的思路,转化为一行行严谨的数学推导,供编码的队友参考。
时间,来到最后一分钟。
“提交。”程明笃的声音此时已经掀不起一丝波澜。
对于真正能参加这场决赛的人来说,一道题得以巧妙解决,在出结果的瞬间就一直差不多知晓了。
队友按下提交键。全世界的目光,都聚焦在了他们队伍的屏幕上。
旋转,等待,判定……
当那个代表着“通过”的、绿色的“Accepted”字样,在屏幕上亮起的瞬间——
全场响起了雷鸣般的掌声和惊呼声!
一个工作人员微笑着,拿着一只代表着“J题”的、独一无二的金色气球,走到了他们的座位旁,将它系好。
在整个赛场数百个五颜六色的气球中,这只金色的气球,如同胜利者加冕。
程明笃的队伍,在比赛结束前的最后几秒,成功解出了全场最难的一道题,几乎锁定了胜局!
颁奖礼上,主持人用激昂的声音,揭晓了那最后一小时的悬念,并最终喊出“20XX年ICPC全球总决赛世界冠军——来自MIT的‘InfiniteRecursion’队时,程明笃和他的队友们,在他二十岁不到的年纪,一起站上了那个属于全世界最聪明大脑的领奖台。
……
当晚,颁奖典礼结束后的酒店房间里,程明笃刚结束了和团队的庆祝。
正欲查看邮件,问问叶语莺的近况。
就在这时,他的私人手机,突兀地震动了起来。
是一个来自国内的、管家的号码。
他接起电话。
叶语莺的父亲出狱了……——
作者有话说:50个~
这个解题思路啊,如果有更懂算法这方面的朋友可以提出来更优的可能性,以后还能改,毕竟天才主角有时候还是受限于作者的认知(本人实在不学无术QAQ),等我以后更理解这些了再修改也可以……
第57章
那天,天上没有下雪,却令路面结了冰,冷得让人无计可施。
傍晚,喝得醉醺醺的叶建国,带着一个满脸横肉、脖子上戴着大金链子的陌生男人回了家。
“来,王老板,看看,这就是我女儿,”叶建国献媚地笑着,指着正在角落里洗碗的叶语莺,“省冠军!身子骨结实得很!绝对是个能生儿子的好料子!”
那王老板用一双浑浊的、不怀好意的眼睛,将叶语莺从头到脚打量了一遍,满意地点了点头:“不错,不错。你说你要多少来着,二十个?”
叶语莺感觉自己浑身的血液,在一瞬间,冻成了冰。
她知道,她那地狱般的生活,即将迎来最恐怖的一章。她不能再等了,她必须逃走,立刻,马上!
然而,她忍住了害怕和愤怒,依旧用那副麻木的、逆来顺受的死寂模样面对两人。
叶建国和王老板肆无忌惮用那污秽的话语,将她如同猪肉一样骨架,她没有表现半点不满,也没有流露出丝毫的恐惧和厌恶。
多年的地狱生活,让她学会了最重要的一条生存法则:在恶魔面前,只有伪装成更无害、更顺从的猎物,他才会误以为你认命了,渐渐松懈,才能找到致命一击的机会。
“去,给王老板倒杯热茶,有点眼力见!”叶建国显然对王老板的满意态度十分高兴,回过头,不耐烦地对叶语莺命令道。
“……好。”叶语莺顺从地应了一声,低着头,转身走向那间油腻腻的、只在角落里亮着一盏昏黄小灯的厨房。
这是一个绝佳的机会。
厨房里有一个常年失修、只能从里面打开插销的后门,门外就是通往村外大片的、荒芜的田野。
叶语莺的心脏,像被一只无形的手紧紧攥住,狂跳不止。但她的动作,却从容得可怕。
她没有立刻去倒茶。而是先从米缸里舀了半瓢米,装作要淘米的样子,为自己争取时间。然后,走到灶台前,拧开煤气,点上火,将一个装满了冷水的大铁锅,重重地放在了灶上。
屋外,凝寒霜冻。
屋内,两个男人肆无忌惮的谈笑声和划拳声,成了她行动的背景音。
她一边听着外面的动静,一边悄无声息地,移到了那扇紧闭的后门前。她用尽全身的力气,才将那根早已锈死的、冰冷的铁插销,一点一点地、无声地,向上抬起。
这门要想打开,动静太大,这是唯一一个还没被叶建国封死的出口,她从未动过,为的就是不想引起他的注意。
平时厨房是被锁起来的,只有需要她做饭的时候才打开,一般叶建国都在场,没有任何机会给门栓做手脚。
每当外面发出震天的笑声,她就趁机握着一把铁勺,把插销敲打一寸。
就这样一寸一寸,为她的逃生努力着。
“咔哒。”
一声极轻的
-->>(本章未完,请点击下一页继续阅读)【请收藏 303文学 303wx.com】