[ABC308G]MinimumXorPairQuery

[ABC308G] Minimum Xor Pair Query

必须知道的性质:

对于三个非负整数 x,y,z(x<y<z),有 min(xy,yz)<xz

  • 证明

    从二进制最高位开始 i=logV,对 x,y,z 进行如下操作:

    1. 若它们的当前位都两两相同,继续跳到下一位 i--

    2. 根据三个数的大小关系,可以得到两种情况:

      1. xi=0,yi=0,zi=1

      显然,这时有 xy<xz

      1. xi=0,yi=1,zi=1

      yz<xz

有了上述性质,我们只需要维护大小相邻的数的异或和就行了。

开两个可重集。可重集 s 记录黑板上当前有哪些元素;另一个可重集 ans 记录 s 中相邻元素的异或值。

插入删除操作在维护 s 的同时维护一下 ans 即可。

AC

本文作者:wscqwq

本文链接:https://www.cnblogs.com/wscqwq/p/17582492.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   wscqwq  阅读(17)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起