AT_arc207_c [ARC207C] Combine to Make Non-decreasing

题目描述

给你一个长度为 $N$ 的整数序列 $A=(A_1, A_2, \cdots, A_N)$。Snuke 希望将 $A$ 变为非递减序列。 他可以进行以下操作零次或多次: - 选择 $A$ 的两个相邻元素, - 删除这两个元素,在原位置插入它们的按位 $\mathrm{OR}$ 运算结果。 请你求出,经过若干次操作后,当 $A$ 已经是非递减序列时,$A$ 的最大可能长度是多少。 什么是按位 $\mathrm{OR}$?非负整数 $A$ 与 $B$ 的按位 $\mathrm{OR}$ 运算 $A\ \mathrm{OR}\ B$ 定义如下: - 当 $A\ \mathrm{OR}\ B$ 用二进制表示时,$2^k$ 位上的数字($k \geq 0$)如果 $A$ 和 $B$ 的 $2^k$ 位至少有一个为 $1$,则为 $1$,否则为 $0$。 例如,$3\ \mathrm{OR}\ 5 = 7$(二进制表示为:$011\ \mathrm{OR}\ 101 = 111$)。 什么是非递减序列?若序列 $a=(a_1, a_2, \cdots, a_n)$ 满足 $a_1 \le a_2 \le \ldots \le a_n$,则称之为非递减序列。

输入格式

输入从标准输入读入,格式如下: > $N\ A_1\ A_2\ \ldots\ A_N$

输出格式

输出答案。

说明/提示

### 样例解释 1 - 如果第一次操作选择第 $1$ 个和第 $2$ 个元素,则 $A=(3,2)$,此时 $A$ 不是非递减序列。 - 如果第一次操作选择第 $2$ 个和第 $3$ 个元素,则 $A=(3,3)$,此时 $A$ 是非递减序列。 ### 数据范围 - $1 \le N \le 2 \times 10^5$ - $1 \le A_i < 2^{30}$ - 所有输入值均为整数。 由 ChatGPT 5 翻译