有一个长为 的数列 ,有 个操作:
- 对于 ,把 变成 。
- 对于 ,把 变成 。
- 求 中的最大值。
其中 $\wedge $ 为按位与 ,$ \vee $为按位或。
Constraints
,
Solution
按位与和按位或操作会把对一些数位执行区间赋值操作,所以如果区间内的数这些数位上的数相同,则可以直接打上标记,否则需要递归访问额外节点。过程中需记录区间内数字的与、或和最大值,以方便判断数位是否相同。
下传标记时先与后或。
复杂度 (其实主要问题在复杂度分析)。
Code
1 |
|