[语言月赛 202401] 二进制与一
PDF 视图题目描述
给定一个正整数 ,以及操作次数
。对于每次操作,给出一个正整数
,要求:让
加上一个非负整数
,使得
在二进制下的第
位(从右往左数)是
,并在符合要求的情况下,令
最小。
请注意,每次操作都会让 变为
,会影响后续操作。
小山需要求出,所有的 之和是多少。
输入格式
输入共 行。
第一行两个整数 和
。
接下来 行,每行一个正整数
,表示要让
在二进制下从右往左数的第
位是
。
输出格式
一行一个整数,表示所有的 之和。
样例 #1
输入 #1
5 3
2
3
4
输出 #1
3
说明/提示
样例 1 说明
在二进制下是
。
- 对于第一次操作,需要让
的第二位变为
,则需让
加上
,变为
;
- 对于第二次操作,需要让
的第三位是
,由于
的第三位本身就是一,所以无需改变;
- 第三次操作同理,需要让
加上
。
最终输出结果是 。
数据规模与约定
对于 的数据,\(1\le n < 2^{32},1\le q\le 10^5,1 \le k\le 32\)。
| 测试点编号 | |||
|---|---|---|---|
评论