设块长为 SSS,修改复杂度为 O(S+logai)O(S+\log a_i)O(S+logai),查询复杂度为 O(nS+(S+logai)logx)O\left(\dfrac{n}{S}+(S+\log a_i)\log x\right)O(Sn+(S+logai)logx),根号平衡可知 SSS 应取 nlogx\sqrt{\dfrac{n}{\log x}}logxn,然而最快的代码取 S=nS=\sqrt{n}S=n,亲测大约为 S=n2S=\dfrac{\sqrt{n}}{2}S=2n 时最快。虽然我用 std::unordered_map 可能导致常数较大,但是显然数据根本没有卡满 logx\log xlogx 次
std::unordered_map