专栏文章

P11365 [Ynoi2024] 新本格魔法少女りすか 题解

P11365题解参与者 10已保存评论 11

文章操作

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

当前评论
11 条
当前快照
1 份
快照标识符
@miqu57xr
此快照首次捕获于
2025/12/04 10:47
3 个月前
此快照最后确认于
2025/12/04 10:47
3 个月前
查看原文
考虑序列分块,设块长为 BB。朴素地设 fi,jf_{i,j} 表示前 ii 个块对前 jj 个数的贡献空间会炸,注意到贡献独立,考虑离线逐块处理。
现在我们希望求出一个块 (l,r,id)(l,r,id) 对所有询问的所有贡献,只需要预处理值域前缀和以及贡献到前缀数的前缀和即可 O(mi)O(\sum m_i) 做掉。注意防止算重要用一些小技巧。复杂度 O(nmiB)O(\frac{n\sum m_i}{B})
剩下所有散块,顺次加入 BIT 暴力查询即可,复杂度 O(Blognmi)O(B\log n\sum m_i)
平衡复杂度即可做到 O(nlognm)O(\sqrt{n\log n}\sum m),非常卡常,可能需要更快的 BIT 和一些清空技巧。
代码按照传统不放。

评论

11 条评论,欢迎与作者交流。

正在加载评论...