题意:在有向图中,给定起点和终点,求经过所有必经点集合的最短路径。(图中所有的点最多只能经过一次)
限制:点数 <= 600, 必经点数 <= 50, 每个结点的最大出度为8
这是一个NP问题,是哈密顿回路和TSP问题的变种。
分析:对于这个问题最直接的想法就是采用深度优先暴力搜索,暴力搜索算法的时间复杂度太大(2^n),只能解决30点之内的初级用例。
而对于点数较多的测试用例,尝试过下面几种方法,虽然最后的实现效果不是很理想,官方的case 14,15没有跑出来,因为设计的算法都是基于贪心的,所以就掉沟里了=_=
1. 插点法(基于floyd算法)
idea&#x