题意
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点挪动的距离+路径本身的长度}。
不会证明,反正直觉上是这样的。
该篇文章讨论了一个问题,如何从k点出发,遍历x轴上n个点及一个额外点n+1的最短路径。给出了当k在1到n之间时的四种可能路径,以及特殊情况k等于n+1的处理。文章涉及排序、路径组合和优化策略。
108





