P5283 [十二省联考 2019] 异或粽子
和超级钢琴本质等价题。
首先前 \(k\) 大还是那个套路,对每个右端点考虑,先将能造成最大贡献的区间加进去,然后取出最大的将贡献往下递归一层,但是这需要让我们求区间异或上一个值第 \(k\) 大,这已经不是普通的可持久化 0/1 Trie 了,而且我还不会做。
那么超级钢琴有一个解决方案,就是这个结构本质上限制没有那么强,只需要处理出前 \(k - 1\) 大时第 \(k\) 大在堆里就好,那么我们每次令一个值掌管一个区间,每次删除一个位置就将这个区间分裂两边各求最大值,容易发现这种 DAG 构造方案就是笛卡尔树,是正确的,并且也只需要区间异或上一个值最大,写个普通的可持久化 0/1 Trie 即可。
我唐了,第 \(k\) 大可以直接做。
由于异或的交换律,所以你甚至可以拓展到全局然后除以二,然后你就只需要一个最基础的 Trie 了。
我的做法可能是最有巧思的一个了。

浙公网安备 33010602011771号