Loading

P13687 【MX-X16-T5】「DLESS-3」XOR and Rockets

考虑分两种情况,一种是值域不会超过 \(a_n\),一种是值域任意大。

你思考为啥不能直接做后面的情况,因为如果 \(b_n\) 是 inf 你就跪下了。

很容易将问题从前缀变为取连续段异或,因此第一部分用个 DP 就做完了。

考虑第二部分,既然值域都任意大了,那么此时相邻连续段不必满足大小关系,问题变为判断一个连续段能否被生成成单调不降,对于两个数 \(a, b\),若想使得 \(a \oplus x \le b \oplus x\),那么考虑最高的不同位即可,因为异或完之后这一位的值仍然不同,必须满足异或完后 \(a\) 这一位是 \(0\)\(b\) 这一位是 \(1\),容易发现这就是充要条件,DP 即可。事实上因为这东西有单调性,这一部分可以做到近线性。

posted @ 2026-01-12 08:53  Alexande  阅读(2)  评论(0)    收藏  举报