P3101 [USACO14JAN] Ski Course Rating G 题解
看到这题很容易想到对于每个起点进行二分 + bfs check,但这样写显然 T 飞。
然后由此我们想到用并查集维护连通块做,
具体地,我们先建出图,令每个格子向其右、下格子连边,边权为高度绝对差,
然后将边权从小到大排序,
考虑每一条边,若其端点未被合并,则将它们合并为同一集合,
顺便维护连通块的大小
若合并后集合大小
时间复杂度
代码。非常好写。
看到这题很容易想到对于每个起点进行二分 + bfs check,但这样写显然 T 飞。
然后由此我们想到用并查集维护连通块做,
具体地,我们先建出图,令每个格子向其右、下格子连边,边权为高度绝对差,
然后将边权从小到大排序,
考虑每一条边,若其端点未被合并,则将它们合并为同一集合,
顺便维护连通块的大小
若合并后集合大小
时间复杂度
代码。非常好写。