bzoj权限题,可以去洛谷上交
先考虑每个点最大可以放多大的箱子,这需要求出离他最近的障碍距离,
这可以从障碍开始bfs,仔细观察发现要像八个方向bfs。
原题就变成了求两点之间的路径上的最小值,这显然路径在最大瓶颈生成树上最优的。点权改成边权,边权是两点之间的最小值,然后用kurskal求出最小生成树。
然后介绍一个不用树剖的方法,用kurskal求的时候并查集按秩合并,这样可以保持最小生成树的形状,并且树高是 l o g n 2 logn^2 logn
bzoj权限题,可以去洛谷上交
先考虑每个点最大可以放多大的箱子,这需要求出离他最近的障碍距离,
这可以从障碍开始bfs,仔细观察发现要像八个方向bfs。
原题就变成了求两点之间的路径上的最小值,这显然路径在最大瓶颈生成树上最优的。点权改成边权,边权是两点之间的最小值,然后用kurskal求出最小生成树。
然后介绍一个不用树剖的方法,用kurskal求的时候并查集按秩合并,这样可以保持最小生成树的形状,并且树高是 l o g n 2 logn^2 logn