社区讨论

求证明或证伪

CF480EParking Lot参与者 3已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@md3bod8u
此快照首次捕获于
2025/07/15 00:33
7 个月前
此快照最后确认于
2025/11/04 04:28
4 个月前
查看原帖
我的想法是这样子的:
正着考虑操作。以行为单位,维护以每个位置为左上角的最大正方形边长。
考虑增加一次操作。它对于每一行的影响应当都是一个连续段,且从下往上段的左端点不断变大,右端点不断变小。可以暴力双指针状物维护左右端点。
然后考虑每一段会被变成什么。不难发现一段会被分成前后两个部分,前半部分横向被限制,表达在数组上是一个公差为 -1 的等差数列。后半部分纵向被限制,表达在数组上是一个平台。
每一行开一个 odt 维护等差数列段,再开一个 multiset 维护所有段的起始位置。总段数是 O(nm+kn)O(nm+kn) 的。每次询问暴力查找每个 multiset 的最大值,所以总时间复杂度没算错的话应该是 O(n2logn)O(n^2\log n)
不知道做法是不是对的,但是我现在要睡觉了。
minstdfx过来做题

回复

6 条回复,欢迎继续交流。

正在加载回复...