该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

二进制增量

题目描述

Y 同学正在研究二进制数的性质。他得到了一个初始正整数 NN 以及一个操作次数 QQ

接下来,Y 同学需要依次进行 QQ 次操作。在第 ii 次操作中,给定一个正整数 kk,Y 同学需要找到一个最小的非负整数 xx,使得 N+xN + x 的二进制表示中,从右往左数的第 kk 位(最低位为第 11 位,即 202^0 位)是 11

找到这个 xx 后,Y 同学需要将 NN 更新为 N+xN + x(即 NN+xN \leftarrow N + x),以便进行后续的操作。

Y 同学想要知道,这 QQ 次操作中所有找到的 xx 之和是多少。

注意

  1. 每次操作都会永久改变 NN 的值。
  2. kk 位对应的值为 2k12^{k-1}

输入格式

第一行包含两个整数 NNQQ,分别表示初始整数和操作次数。 接下来 QQ 行,每行包含一个正整数 kk,表示本次操作的目标是让第 kk 位变为 11

输出格式

输出一行一个整数,表示所有操作中 xx 的总和。

样例

样例输入 #1

5 3
2
3
4

样例输出 #1

3

数据范围与约定

对于 100%100\% 的数据,保证 1N<2321 \le N < 2^{32}1Q1051 \le Q \le 10^51k321 \le k \le 32提示:在操作过程中,NN 的值可能会超过 2322^{32},同时也请注意答案累加可能产生的溢出,建议使用 64 位整数(如 C++ 中的 unsigned long long)进行存储。

子任务编号 分值 N<N < QQ \le kk \le
1 10 55 1010 22
2 20 3232
3 10251025 10001000 1010
4 2322^{32} 1010 3232
5 30 10510^5

「果壳杯」 ROUND 40 (Div. 5)

未参加
状态
已结束
规则
IOI
题目
5
开始于
2026-3-6 18:00
结束于
2026-3-13 18:00
持续时间
2 小时
主持人
参赛人数
25