比较 xxorNx\mathbin{\mathrm{xor}}NxxorN 与 NNN 时,最高个发生变化的二进制位就是 xxx 的最高置位。
若该位在 NNN 中为 1,异或后它从 1 变为 0,结果必然更小;若在 NNN 中为 0,结果必然更大。因此,合法 xxx 的最高置位必须也是 NNN 的置位。
1
0
枚举每个置位 kkk。所有最高置位为 kkk 的正整数恰好构成区间 [2k,2k+1−1][2^k,2^{k+1}-1][2k,2k+1−1],把它与 [L,R][L,R][L,R] 的交集长度累加即可。
时间复杂度为 O(logN)O(\log N)O(logN),额外空间为 O(1)O(1)O(1)。
注册一个 Hydro 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 Hydro 通用账户