可以考虑分两层块,时间复杂度为 O(nB2+n2B12+nB1B22)O(nB_2+\frac{n^2}{B_1^2}+\frac{nB_1}{B_2^2})O(nB2+B12n2+B22nB1),取 B1=n67,B2=n27B_1=n^{\frac{6}{7}},B_2=n^{\frac{2}{7}}B1=n76,B2=n72,可以做到 O(n78)O(n^{\frac{7}{8}})O(n87),虽然比 Sqrt Tree 略劣,但是查询时 O(1)O(1)O(1) 的。适用数据范围:n≤107,q≤108n\le10^7,q\le10^8n≤107,q≤108,用某种特殊方式生成询问(否则输入寄了)。
常数应该是比 Sqrt Tree 小的吧