给定一个凸 边形,以及它的三角剖分。再给定 个询问,每个询问是一对凸多边行上的顶点 ,问点 最少经过多少条边(可以是多边形上的边,也可以是剖分上的边)可以到达点 。
Constraints
,
Solution
运用分治的思想,每一次选择一条剖分边,使得凸多边形分成尽量平均的两部分。使用 bfs 得出该条边的两个端点到各个顶点的最短路,对所有的询问在两个端点处进行拼凑并更新答案。然后对两部分的信息分别划开,进行下一层的分治。
(每次分治完,点数会比原来多 ,所以空间要开三倍。)
Code
1 |
|