luogu#P10512. 序列合并

    ID: 14456 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 4 上传者: 标签>贪心洛谷原创O2优化位运算洛谷月赛

序列合并

题目描述

给定一个长度为 nn 的非负整数序列 {an}\{a_n\},你可以进行 kk 次操作,每次操作你选择两个相邻的数,把它们合并成它们的按位或。

形式化地,一次操作中,你选择一个下标 ii1i<n1 \le i < n),然后把原序列变成 $\{a_1,a_2,\cdots,a_i \operatorname{or} a_{i+1},a_{i+2},\cdots,a_n\}$。

kk 次操作后所有数按位与的最大值。

输入格式

第一行包含两个正整数 n,kn,k

第二行包含 nn 个非负整数,其中第 ii 个非负整数为 aia_i

输出格式

输出一行,包含一个正整数,代表答案。

5 2
2 1 2 3 1
2

提示

【样例解释】

一种合法的方案:

  • 第一次操作,选择第一个数和第二个数合并,序列变为 {3,2,3,1}\{3,2,3,1\}
  • 第二次操作,选择第三个数和第四个数合并,序列变为 {3,2,3}\{3,2,3\}

最终所有数的按位与为 22。可以证明不存在更优的方案。

【数据范围】

  • 对于 25%25\% 的数据,n20n \le 20
  • 对于另外 25%25\% 的数据,k=n2k=n-2

对于所有数据,保证 1k<n2×1051 \le k<n \le 2 \times 10^50ai<2300 \le a_i < 2^{30}