题目描述
小 R 有 n 个非负整数 a1,a2,…,an。
小 X 给了小 R 一个正整数 m,并要求小 R 从这 n 个非负整数中选出恰好 m 个,使得选出的 m 个数的二进制按位与的值最大。
你需要帮助小 R 求出,他能选出的 m 个数的按位与的最大值。
输入格式
从标准输入读入数据。
输入的第一行包含两个正整数 n,m。
输入的第二行包含 n 个非负整数 a1,a2,…,an,依次表示小 R 的 n 个非负整数。
输出格式
输出到标准输出。
输出一行一个非负整数,表示小 R 能选出的 m 个数的按位与的最大值。
4 2
3 15 12 12
12
5 3
31 3 1 15 7
7
提示与数据范围
样例 1 解释
小 R 有 4 个非负整数:3,15,12,12。
- 若小 R 选择 3,15,则按位与的值为 3and15=3;
- 若小 R 选择 3,12,则按位与的值为 3and12=0;
- 若小 R 选择 15,12,则按位与的值为 15and12=12;
- 若小 R 选择 12,12,则按位与的值为 12and12=12。
因此,小 R 能选出的 m 个数的按位与的最大值为 12。
样例 2 解释
若小 R 选择 31,15,7,则按位与的值为 $31\mathbin{\mathrm{and}}15\mathbin{\mathrm{and}}7=7$。可以证明,小 R 能选出的 m 个数的按位与的最大值为 7。
数据范围
对于所有测试数据,均有:
- 1≤m≤n≤2×105;
- 对于所有 i(1≤i≤n),均有 0≤ai<230。
| 测试点编号 |
n≤ |
m |
maxi=1nai< |
特殊性质 |
| 1∼5 |
20 |
≤n |
220 |
无 |
| 6 |
2000 |
=1 |
| 7 |
=n |
| 8∼10 |
=2 |
| 11,12 |
2×105 |
=n−1 |
| 13 |
≤n |
A |
| 14,15 |
B |
| 16,17 |
4 |
无 |
| 18,19 |
210 |
| 20 |
230 |
特殊性质 A:对于所有 i(1≤i≤n),均存在非负整数 ki 满足 ai=2ki−1。
特殊性质 B:存在非负整数 k 满足 n=2k,且对所有 i(1≤i≤n),均有 ai=i−1。
来源说明
CSP-J 2026 第二轮第3题。题面据洛谷 P17829 民间数据自测整理,来源:CSP-J 2026 自测。本地使用标准输入输出,测试数据为GeekPi自行构造的训练数据,非CCF官方数据;原选手目录中的外部大样例未随本包提供。