固定一个二进制位 xxx,序列中下标只在该位不同的两个元素会形成一对;一次 Y=0Y=0Y=0 或 Y=1Y=1Y=1 的查询分别等价于用一个固定的 2×22\times22×2 矩阵左乘每一对元素。
作用于不同位的查询彼此可交换,因此可以按 xxx 分组,同时保持同组查询的原顺序,先求出每一位对应的矩阵乘积,再把它应用到所有下标对上。
矩阵累乘共需 O(Q)O(Q)O(Q),每一位扫描整个序列需要 O(2N)O(2^N)O(2N),故总时间复杂度为 O(Q+N2N)O(Q+N2^N)O(Q+N2N),空间复杂度为 O(2N+N)O(2^N+N)O(2N+N)。
注册一个 Hydro 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 Hydro 通用账户