题意
x轴上有n个点,轴外有一个点n+1,问从k点出发遍历全部的最短路径。
题解
首先特判一下k==n+1,这里很简单不赘述。
当1≤k≤n时,我们先不考虑出发点,先看看遍历全部点的可能最短路径。
首先将x轴上的点排序,然后将其切分为A、B两个部分,当A、B都不为空集时,有路径:
Amin→Amax→n+1→Bmin→Bmax
Amin→Amax→n+1→Bmax→Bmin
Amax→Amin→n+1→Bmin→Bmax
Amax→Amin→n+1→Bmax→Bmin
其中Bmin=Amax+1。
当A为空集或B为空集时,有路径:
1→n→n+1
n→1→n+1
我们尝试将k点挪到上述路径的起点或终点,然后计算min{k点挪动的距离+路径本身的长度}。
不会证明,反正直觉上是这样的。