社区讨论

求问在线区间众数做法

学术版参与者 6已保存回复 11

讨论操作

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

当前回复
11 条
当前快照
1 份
快照标识符
@mhjrdvr3
此快照首次捕获于
2025/11/04 07:16
4 个月前
此快照最后确认于
2025/11/04 10:21
4 个月前
查看原帖
目前想法是这样的:
首先分块。预处理出 ans[l][r] 表示第 l 个块到第 r 个块(整块)的区间众数。这部分可以回滚莫队,时间复杂度 O(nn)O(n\sqrt{n})
然后预处理出 cnt[a][r] 表示第 aa 个数在 1r1\sim r 个块中出现的次数。时间复杂度 O(nn)O(n\sqrt{n}),空间复杂度 O(nn)O(n\sqrt{n})
对于散块,暴力处理,暴力查询散块中的数在整块中出现的次数,再与 cnt[l][r] 作比较,得到最终结果。
求问如何将空间优化到线性,或有没有什么容易的低复杂度做法?玄关。

回复

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

正在加载回复...