专栏文章
题解:P12019 [NOISG 2025 Finals] 洪水
P12019题解参与者 4已保存评论 7
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 7 条
- 当前快照
- 1 份
- 快照标识符
- @mip4onvk
- 此快照首次捕获于
- 2025/12/03 06:06 3 个月前
- 此快照最后确认于
- 2025/12/03 06:06 3 个月前
绝世好题!!!
速报:本题复杂度已达到输入同级 !!!
注意到每个结点能淹没的点一定是一个矩形,不然可以继续扩张。
我们在矩形外面围一层 。
考虑一个作为答案的矩形长什么样,容易发现该矩形的边界一定全是 ,且不能存在一行(列) 将其分开。
一个位置的答案矩形即为最小的包含它的这种矩形的大小。
记第 个这种矩形的大小为 ,我们断言 。
考虑证明这个理论:
首先这样的矩形只能包含或相离,否则会有两个矩形互相把对方切开。
我们对矩形的包含关系建一棵树。
考虑每个矩形和它父亲矩形的重叠部分,我们证明其不可能包含一组对边。
若其包含一组对边,则该矩形会把父亲矩形划分成两个部分,不满足合法矩形要求。
那么它至少有一对长和宽是不与父亲重合的,即 。
接下来我们需要求出这些极大矩形。
考虑枚举左边界 。记 上的建筑物为 , 为 向左延伸的最远距离。
那么一个合法的上下边界 一定满足 ,这个可以单调栈求出。
对于一对合法的 ,我们可以暴力从 出发找右边界,容易证明这个的复杂度是均摊 的。
接下来就是做矩形 checkmin,求全局值。这部分由于周长是 级别的可以对每行开一个 并查集,将矩形从小到大排序后对每行做区间覆盖。排序使用计数排序即可做到时间复杂度 。
相关推荐
评论
共 7 条评论,欢迎与作者交流。
正在加载评论...