摘要:
思路 比较典的 ODT 题目。 发现排序是一个非常有性质的操作。 它对区间的更改与颜色段均摊差不多。 那么我们可以想到用 ODT 来维护这一整个序列。 具体的,区间排序操作可以用 ODT 维护每次排序产生的段,每段用线段树维护排序后的结果。 每次修改就可以进行线段树的分裂与合并。 如何查询。 可以发 阅读全文
摘要:
题解怎么都是用暴力日过去的啊。 思路 考虑根号分治,设阈值为 \(B\)。 对于第二维出现次数超过 \(B\) 的,我们可以在修改时暴力更改,这部分复杂度为 \(O(\frac{nm}{B})\)。 对于第二维出现次数小于 \(B\) 的,我们可以在修改是打标记,查询时遍历一遍,这部分的复杂度为 \ 阅读全文
摘要:
思路 看到时限这么大,考虑暴力做法。 我们将原序列分为 \(\text{B}\) 个块,每个块类似线段树三一样的维护 \(add,maxadd\),表示这一块需要加的值,加的值的历史最大值。 同时对于每个数可以维护一个真实值与一个历史最值。 那么下传标记可以写成这样。 inline void pus 阅读全文
摘要:
最开始没看到子树的限制,以为是个极其困难题。 思路 由于问题是在子树下,可以考虑在 dfn 序上扫描线。 考虑一个点 \(u\) 对 \(v,d\) 的贡献。 令 \(dep_u\) 为 \(u\) 的深度,\(mdep_u\) 为 \(u\) 的子树下的最大深度。 \(dep_u< dep_v\) 阅读全文
摘要:
思路 题目即要求删除区间中的一个或多个颜色。 考虑假如枚举删除颜色 \(k\)。 那么在 \(l,r\) 中的答案为: \[\max_{i=1}^{m+1} a_i-a_{i-1} \]其中 \(a_i\) 为颜色 \(k\) 在 \(l\sim r\) 中的出现位置,\(a_{0}=l,a_{m+ 阅读全文