说个关于分治的小trick
比如说我们有一个序列,枚举序列每一个间隙,将序列分成左右两半,求 x xor y 最大值,其中 x 在左边,y 在右边,你会怎么想?
我一想01Trie不太能合并 那就只能分块了吗?
未必,考虑cdq分治,能做到枚举每一对点,把这对点中间的每一个间隙的答案更新一下就行
所以我们反过来,cdq分治的时候原来你不是处理左右两边点吗现在改成看那个间隙,先把半边加到trie树里面,再从左往右扫,求个前缀xormax就行、
比如说我们有一个序列,枚举序列每一个间隙,将序列分成左右两半,求 x xor y 最大值,其中 x 在左边,y 在右边,你会怎么想?
我一想01Trie不太能合并 那就只能分块了吗?
未必,考虑cdq分治,能做到枚举每一对点,把这对点中间的每一个间隙的答案更新一下就行
所以我们反过来,cdq分治的时候原来你不是处理左右两边点吗现在改成看那个间隙,先把半边加到trie树里面,再从左往右扫,求个前缀xormax就行、