#L0224. 二进制置位操作
二进制置位操作
题目描述
给定一个正整数 ,以及操作次数 。对于每次操作,给出一个正整数 ,要求:让 加上一个非负整数 ,使得 在二进制下的第 位(从右往左数)是 ,并在符合要求的情况下,令 最小。
请注意,每次操作都会让 变为 ,会影响后续操作。
请求出所有的 之和。
输入格式
输入共 行。
第一行两个整数 和 。
接下来 行,每行一个正整数 ,表示要让 在二进制下从右往左数的第 位是 。
输出格式
一行一个整数,表示所有的 之和。
样例
5 3
2
3
43
提示
样例 1 说明
在二进制下是 。
- 对于第一次操作,需要让 的第二位变为 ,则需让 加上 ,变为 ;
- 对于第二次操作,需要让 的第三位是 ,由于 的第三位本身就是 ,所以无需改变;
- 第三次操作同理,需要让 加上 。
最终输出结果是 。
数据规模与约定
对于 的数据,,,。
| 测试点编号 | $n$ | $q$ | $k$ |
|---|---|---|---|
| $1$ | $\leq 4$ | $\leq 10$ | $\leq 2$ |
| $2, 3$ | $\leq 4$ | $\leq 10$ | $\leq 32$ |
| $4, 5$ | $\leq 1024$ | $\leq 1000$ | $\leq 10$ |
| $6, 7$ | $\lt 2^{32}$ | $\leq 10$ | $\leq 32$ |
| $8 \sim 10$ | $\lt 2^{32}$ | $\leq 10^5$ | $\leq 32$ |
难度
普及-
通过率
—
尝试
0
已通过
0
- ID
- 952
- 类型
- 传统题
- Time Limit
- 1000ms
- Memory Limit
- 512MiB
- 上传者