一晚上的睡眠,让萧墨彻底熟悉了这些技能。洗漱,吃过早餐,萧墨两人没有选择开车,而是散步来到了学校。今天是一个老教授的课,计算机系的阶梯教室早已坐满学生。
两人刚从后门溜进去,讲台上周教授推了推眼镜看了看两人,并没有说什么。萧墨已经一段时间没有翻开过课本了。周教授正在讲解动态规划的优化问题,黑板上写满密密麻麻的公式推导,后排几个学渣已经开始昏昏欲睡。
“下面我们来看这道题。”
周教授敲了敲投影仪,屏幕上出现一道复杂的旅行商问题变种,“给定一百个城市坐标,要求在多项式时间内找到最短路径,谁能给出优化思路?”
教室瞬间安静下来,连前排的学霸都皱起眉头。这道题是国际算法竞赛的经典难题,常规解法的时间复杂度高达
o
(n2?2?),根本无法满足多项式要求。
商幽岚咬着笔头在草稿纸上画着流程图,笔尖在
“状态压缩”
四个字上反复停顿。“我试试。”
萧墨的声音突然响起,不大却清晰地传遍教室。
所有人都惊讶地回头,连周教授都愣了愣,随即点点头,示意萧墨上前来。萧墨走上讲台,粉笔在黑板上划过,发出簌簌轻响:“可以用近似算法结合贪心策略,先通过最小生成树获取下界,再用
2-opt
局部搜索优化路径……”
他的思路异常清晰,从问题建模到复杂度分析一气呵成。当最后一个公式落下时,黑板上已经出现完整的伪代码实现,时间复杂度被优化至
o
(n3),远超题目要求的多项式时间限制。
“这里……
为什么要用
prim
算法而非
kruskal?”
前排戴眼镜的学霸突然提问,语气带着质疑。
萧墨转身,指尖点在黑板一角:“因为城市坐标是欧几里得距离,满足三角不等式,prim
算法的边权排序更适合后续的路径拼接。”
他随手画出三个城市的坐标图,简单几笔便证明了两种算法的优劣差异。
。