看看 1 操作和 3 操作,这不一平衡树?
但是发现 2 操作没法简单地维护。
异或的话,可以维护子树每个数二进制每一位 1 的个数。
那么做一次异或就是把要异或的这个 d 转为二进制,如果哪一位是 1 就把对应的个数反过来(即修改为数的个数减去这个数)。
然后据说 O(n2) 暴力过掉了?于是卡了时限……
被逼吸氧……
代码:
1 |
|
看看 1 操作和 3 操作,这不一平衡树?
但是发现 2 操作没法简单地维护。
异或的话,可以维护子树每个数二进制每一位 1 的个数。
那么做一次异或就是把要异或的这个 d 转为二进制,如果哪一位是 1 就把对应的个数反过来(即修改为数的个数减去这个数)。
然后据说 O(n2) 暴力过掉了?于是卡了时限……
被逼吸氧……
代码:
1 | #pragma GCC optimize (2) |
Related Issues not found
Please contact @Alpha1022 to initialize the comment