【最短路】【图论建模】【分类讨论】P6471 [COCI2008-2009#6] DOSTAVA
教练放在了模拟赛里,据说有 的解法,劳烦知道的 dalao 分享一下。
解法
要求任意两点间的最短距离。观察图,发现像“目”。
对于从 到 的情况,如果不在同一行,则最短路只可能会有以下情况:
- 从 的左边出, 的左边进。
- 从 的左边出, 的右边进。
- 从 的右边出, 的左边进。
- 从 的右边出, 的右边进。
如果在同一行,则多一种情况: 直接走到 。
使用全源最短路求从 出之后到 进之前的情况。这种情况的点只有 个,边只有 条。所以复杂度是 。
实现
注意不要算重了,对于各种拐弯的情况要注意。前缀和求一行间的距离。