1 条题解
-
0
自动搬运
来自洛谷,原作者为

45dino
不要停下来啊>_<搬运于
2025-08-24 22:00:46,当前版本为作者最后更新于2022-09-21 19:21:52,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
难过。
由于走不同的路有不同的速度,最短路径的形态是一个变化很大的东西。直接构造或贪心大概率是不对的,但是注意到如果把最优情况画出来的话,应该也是一条折线(称为“最优折线”),如果把原平面转化成一个无向图,最优折线就是一条从起点到终点的路径。因此可以考虑建一个图然后跑最短路。
一开始觉得最优折线每一段起点终点都应该是原本的折线端点,因此直接用原本折线端点为顶点,建 条边。但这样是错误的。反例显而易见:
如图,起点是 ,终点是 ,最优的路径大概长这样(假设 )

如你所见,经过了一个中转点 ,但是 并不是端点。
可以发现,虽然最优折线的端点不一定在原本折线的端点上,但是一定在原本折线上。(因为在沙地里转变方向是不优的)
折线的端点只有 个,但是折线上的点有无限个,这种情况下要考虑哪些点是有意义的,只将这些有意义的点加入最后的拓扑图里。
可以枚举边,对于每一条边,求出上面哪些点是有意义的。对于原本折线上的一条边 上的点 是有意义的当且仅当存在一个端点 ,使得 是所有 上的点中最小的;或者使得 是所有 上的点中最小的。如果枚举 ,符合条件的 的位置是能被确定的。大多数题解都是用一些怪异的公式进行推导,这里提供一个初等数学的做法。
其实这是一个著名的初中数学模型——胡不归问题。
给定 三点,试在直线 上找一点 ,使得 最小,其中 。
构造 ,使得 ,作 ,则 与 交点 即为所求。

证明不难:由构造过程可得 ,因此 。如果取 上的另一个不同于 的点 ,作 ,则有 。
在原问题中,,可以根据 求出 ,进而确定交点 ,只需要判断 是否在线段 上即可。这样就可以对于每一条边,求出该边上所有有意义的点。显然点数和边数都是 的。
这一题放在 WC,不仅可以体现国集选手的思维能力和计算几何代码能力,更多的是对 whk 的考察(?)
后记:Geogebra 是真的香。
- 1
信息
- ID
- 3468
- 时间
- 3000ms
- 内存
- 500MiB
- 难度
- 7
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者