AT_arc207_c.[ARC207C] Combine to Make Non-decreasing

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给你一个长度为 NN 的整数序列 A=(A1,A2,⋯ ,AN)A=(A_1, A_2, \cdots, A_N)。Snuke 希望将 AA 变为非递减序列。

他可以进行以下操作零次或多次:

  • 选择 AA 的两个相邻元素,
  • 删除这两个元素,在原位置插入它们的按位 OR\mathrm{OR} 运算结果。

请你求出,经过若干次操作后,当 AA 已经是非递减序列时,AA 的最大可能长度是多少。

什么是按位 OR\mathrm{OR}?非负整数 AA 与 BB 的按位 OR\mathrm{OR} 运算 A OR BA\ \mathrm{OR}\ B 定义如下:

  • 当 A OR BA\ \mathrm{OR}\ B 用二进制表示时,2k2^k 位上的数字(k≥0k \geq 0)如果 AA 和 BB 的 2k2^k 位至少有一个为 11,则为 11,否则为 00。

例如,3 OR 5=73\ \mathrm{OR}\ 5 = 7(二进制表示为:011 OR 101=111011\ \mathrm{OR}\ 101 = 111)。

什么是非递减序列?若序列 a=(a1,a2,⋯ ,an)a=(a_1, a_2, \cdots, a_n) 满足 a1≤a2≤…≤ana_1 \le a_2 \le \ldots \le a_n,则称之为非递减序列。

输入格式

输入从标准输入读入,格式如下:

N A1 A2 … ANN\ A_1\ A_2\ \ldots\ A_N

输出格式

输出答案。

输入输出样例

  • 输入#1

    3
    3 1 2

    输出#1

    2
  • 输入#2

    4
    4 1 2 3

    输出#2

    1
  • 输入#3

    20
    105327673 847116534 928167271 478716741 244808645 744985167 772409400 950055714 32441819 24475691 74630537 632066724 170250355 937572655 791196964 469960355 264764288 1061830134 183233398 643628719

    输出#3

    7

说明/提示

样例解释 1

  • 如果第一次操作选择第 11 个和第 22 个元素,则 A=(3,2)A=(3,2),此时 AA 不是非递减序列。
  • 如果第一次操作选择第 22 个和第 33 个元素,则 A=(3,3)A=(3,3),此时 AA 是非递减序列。

数据范围

  • 1≤N≤2×1051 \le N \le 2 \times 10^5
  • 1≤Ai<2301 \le A_i < 2^{30}
  • 所有输入值均为整数。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页