1 条题解
-
0
自动搬运
来自洛谷,原作者为

Yonder
Morose Dreamer搬运于
2025-08-24 23:09:14,当前版本为作者最后更新于2025-01-13 12:09:07,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
考虑最值分治,当然也可以用笛卡尔树,这两个东西本质一样。
以下内容视 同阶。
先考虑 分的做法:
假设当前分治的区间为 ,令 最大的 为 。枚举小的一边(这里只讨论枚举左边,右边的同理),这时固定了 ,变为求 次: 中 的 的个数。存成 个询问,形如 ,求 中模 为 的 的个数。
根号分治跑询问即可,时间复杂度 。
对于 分的做法:
思考为什么最值分治枚举小的一边时间复杂度是 。因为其对左区间长度与右区间长度取了最小值,这题也可以考虑这么优化。
假设当前分治区间短的一边的长度为 ,对短边跑根号分治的时间复杂度为 。若 ,显然不如暴力枚举另一边,那么就有:$T(n)=\displaystyle\max_{2k\le n}\{T(k-1)+T(n-k)+\min\{k\sqrt V,n\}\}$,可得 。
时隔多日后补个证明,
别打我。令 (这是函数内的 )。
把 拆成(以下所有内容,默认 ):
$$T(n)=\max\{\displaystyle\max_{k\le u}\{T(n-k)+k\sqrt V+\frac{k(k-1)}{2}\},\displaystyle\max_{k\ge u}\{T(k-1)+T(n-k)+n\}\} $$考虑从其中弄出两个函数:
$$A(n)=\displaystyle\max_{k\le u}\{A(n-k)+\frac{k(k-1)}{2}+k\sqrt V\} $$$$B(n)=\displaystyle\max_{k\ge u}\{B(n-k)+B(k-1)+n\} $$对于 绝对是 越大越好,于是 ,易证 。
易证 。
考虑从 计算 ,对于 有:。
考虑代入法:
$$T(n)=\max\{\displaystyle\max_{k\le u}\{A(n-k)+k\sqrt V+\frac{k(k-1)}{2}\},\displaystyle\max_{k\ge u}\{B(k-1)+B(n-k)+n\}\}=\max\{A(n),B(n)\}=O(n\sqrt V) $$终于结束啦。
- 1
信息
- ID
- 11200
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者