专栏文章
题解:P11930 [PA 2025] 吃树叶 / Liście
P11930题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mipsxbfh
- 此快照首次捕获于
- 2025/12/03 17:25 3 个月前
- 此快照最后确认于
- 2025/12/03 17:25 3 个月前
因为时限太搞笑所以暴力分块可以过。但是怎么没人说复杂度对的做法啊。
操作是维护 序列,支持前缀加,查询前缀内 大于等于 的位置 的和。
操作强于行加列求和,显然得根号。暴力的单根号很简单,看其他题解吧。考虑 怎么用,我们希望能编一个 的东西出来。
操作分块,每 个修改操作分一块。这样一共会分成 块。处理到第 块的时候,需要计算 的块对这之中的询问的贡献,以及第 块内部的修改对询问的贡献。
块的贡献
计算出 表示处理了 的块内的所有修改,此时 的权值,这部分复杂度是 。查询就是一个二维数点。
总的修改次数是 级别的,而查询数只有 。考虑平衡一下复杂度。
因为 也是 ,常规分块复杂度还是有点高。所以可以分三层的块:设 ,每 个位置分一个小块,这样一共有 个小块。然后每 个小块建立一个大块。维护每个点的值,小块内部的和,和大块内部的和,修改是 ,查询 。
块内的贡献
一个修改操作 对一个查询操作 的贡献是 内, 大于等于 的点数 ,也就是 次数点,总点数是 。这部分也是和上面一样的三层分块,只不过维护的是块内前缀和,大块内的小块前缀和,大块前缀和。修改 ,查询 。
总复杂度是 ,取 可以得到复杂度是 。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...