前置知识:求 S+Sn 的最小值,并求出 S。其中 n 是定值。
(x−y)2≥0→x2+y2≥2xy→x2+y2+2xy≥4xy→x+y≥2xy。
令 x=S,y=Sn,则有 S+Sn≥2n。即 S+Sn 的最小值为 2n。
解方程,得到 S=n。
1. 分块
分块将数组分成 S=n 块,每一次区间操作分成散块、整块操作。第 i 块在第 idi=n/Si+1块。
他的修改时间复杂度为 O(n)。
例如:开关
2. 分块例题1:开关
将其分为 n 块。i 号点在 idi 块。
每一次修改,快速异或整块,暴力异或散块。
- 推荐练习