#P12453. [UOI 2024] AND Array
[UOI 2024] AND Array
题目描述
给定一个整数 和一个非负整数数组 。数组 的所有元素都小于 。
定义 (, ) 为以下伪代码的执行结果:
res = 0
x = power(2, p)
for i = s to n:
if ((x AND a[i]) == 0):
x = (x OR a[i])
res = res + i
return res
其中,power(2, p)
表示 ,AND
表示按位与运算,OR
表示按位或运算。
非负整数 和 的按位与运算结果是一个非负整数,其二进制表示中某一位为 1 当且仅当 和 的二进制表示在该位都为 1。例如, AND AND 。
非负整数 和 的按位或运算结果是一个非负整数,其二进制表示中某一位为 0 当且仅当 和 的二进制表示在该位都为 0。例如, OR OR 。
对于每个 从 到 ,计算
输入格式
第一行包含两个整数 和 (, ) —— 分别表示数组 的长度和数组元素的限制。
第二行包含 个整数 () —— 数组 的元素。
输出格式
输出 个整数 —— 要求的计算结果。
输入输出样例 #1
输入 #1
5 3
0 2 1 3 4
输出 #1
23 20 16 14 10
输入输出样例 #2
输入 #2
3 2
1 3 2
输出 #2
4 3 3
说明/提示
在第一个示例中,,,,因此第一个要求的值为 。
评分标准
- (10 分):;
- (10 分):,其中 为整数;
- (15 分):;
- (15 分):;
- (25 分):;
- (25 分):无额外限制。
翻译由 DeepSeek V3 完成