1 条题解
-
0
猜测一些结论,不难发现 的点是特殊的,他们存在的价值即改变其他 ,考虑如果 合法,则 内所有数都在 的 中出现过。
显然不对,因为我们可以让 变大的过程中让它变成 ,这样他就能当跳板了,不难发现对于一堆相同的 ,最后总有一个 是无法变大的,如果此时这个 ,则不合法。
考虑再次猜测结论,合法当且仅当 。
首先,若存在 但 ,则不难发现当 们变到 的时候,他们都要变成 ,但必须有一个 留下来,方案不合法。我们考虑在这种条件下构造一组合法方案,每次选出一个最小的 ,此时一定存在一个 ,我们就能令 ,最终一定能完成操作。
为了美观,我们写成 。
不难发现,前者包含后者,所以后者等于前者的充要条件是集合大小相同。
后者的集合大小是区间数颜色,利用扫描线算法加树状数组可以 完成。
前者是区间线段并(这部分是弱化版 P8512),考虑扫描线,每次 时就将 推平,注意到我们只有推平和查询操作,考虑用 ODT 来维护,根据经典结论 在 的过程中,往 ODT 插入的颜色段数是 的。
考虑将 推平的时候涂上颜色 ,并实时维护 表示颜色为 的颜色段长度之和。
每次推平,要做删除操作,因为整个过程总段数是 的,所以我们可以暴力遍历这些颜色段,并修改对应颜色的 ,然后删除,再新加入的颜色段的信息。
对于询问 ,当 扫到 时,我们要查询的就是 ,可以用树状数组快速维护。
时间复杂度为 ,和值域无关。
- 1
信息
- ID
- 9663
- 时间
- 4000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者