分块

前置知识:求 S+nSS+\dfrac{n}{S} 的最小值,并求出 SS。其中 nn 是定值。

(xy)20x2+y22xyx2+y2+2xy4xyx+y2xy(x-y)^2\ge 0\to x^2+y^2\ge 2xy\to x^2+y^2+2xy\ge 4xy\to x+y\ge2\sqrt{xy}

x=S,y=nSx=S,y=\dfrac{n}{S},则有 S+nS2nS+\dfrac{n}{S}\ge 2\sqrt{n}。即 S+nSS+\dfrac{n}{S} 的最小值为 2n2\sqrt{n}

解方程,得到 S=nS=\sqrt{n}

1. 分块

分块将数组分成 S=nS=\sqrt{n} 块,每一次区间操作分成散块、整块操作。第 ii 块在第 idi=in/S+1id_i=\dfrac{i}{n/S}+1块。
他的修改时间复杂度为 O(n)O(\sqrt n)

例如:开关

2. 分块例题1:开关

将其分为 n\sqrt n 块。ii 号点在 idiid_i 块。
每一次修改,快速异或整块,暴力异或散块。

  1. 推荐练习
    • 线段树
    • 弹飞绵羊
posted @ 2024-01-31 10:32  sLMxf  阅读(11)  评论(0)    收藏  举报  来源