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 翻译