SCOI2016Food

Posted lmlysklt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SCOI2016Food相关的知识,希望对你有一定的参考价值。

题目大意:

给出n个数ai,0<=ai<1e5,有m组询问形如(b,x,l,r),要求求出b xor (x+aj) j∈[l,r]的最大值。

n,m<=2e5

题解:

一开始想着,搞一个可持久化trie,结果失败了。

我们贪心地想,从高位往低位做,每一位尽可能变成1。

我们设y=x+aj,那么我们就可以根据b二进制上的某一位是否有1来找出是否有合法的y来满足结果的这一位变成1,可以发现,每次的可行y都是一个区间。

于是我们可以不断缩小y的范围,最多缩小log次,就可以找到答案。

至于判断是否有合法的y,用可持久化线段树就好啦。

以上是关于SCOI2016Food的主要内容,如果未能解决你的问题,请参考以下文章

LibreOJ #2013. 「SCOI2016」幸运数字

luogu P3291 [SCOI2016]妖怪

bzoj4571SCOI2016美味

bzoj4567SCOI2016背单词

bzoj 4568: [Scoi2016]幸运数字

BZOJ4569: [Scoi2016]萌萌哒