首先把题目转换一下,可以得到以下题面:
有一个长度为
的序列 ,求两两异或的前 大值。
本质和 CF241B Friends 一样。
补全三角形矩阵,答案
。
考虑建立可持久化
如果
我们维护一个大根堆,常规维护一下第
对于每一个位置都这样做。可以保证有答案。
当取出一个元素的时候,更新答案,然后使用当前元素计算比其小
可以得到复杂度是
是插入的复杂度, 是堆的复杂度。
如果
我们考虑对于所有的数都插入到
发现如果可以得到第
然后我们直接暴力二分加
所以这种问题的复杂度可以做到
如果您想练练类似的题目的话,推荐一下。
代码确实简单,就不放了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Legendgod's Blog!
评论