[ABC356] D - Masked Popcount

D - Masked Popcount

Time Limit: 2 sec / Memory Limit: 1024 MB

分数:400分

题面

给定整数,计算 Misplaced &(k \mathbin{&} M),对 取模。

这里,Misplaced &\mathbin{&} 表示按位 运算。

什么是按位 运算呢?非负整数 之间的位 运算结果 Misplaced &x = a \mathbin{&} b 定义如下:

  • 是满足以下条件的唯一非负整数,对于所有非负整数
    • 的二进制表示中 位和 的二进制表示中 位均为 ,则 的二进制表示中 位为
    • 否则, 的二进制表示中 位为

例如,,因此 Misplaced &3 \mathbin{&} 5 = 1 是什么呢? 表示 的二进制表示中 的个数。
例如,,所以

限制条件

  • 之间的整数。
  • 之间的整数。

输入

输入由标准输入给出,格式如下:

输出

将答案作为整数输出。


输入样例 1

4 3

输出样例 1

4

  • Misplaced &(0\mathbin{&}3) = 0
  • Misplaced &(1\mathbin{&}3) = 1
  • Misplaced &(2\mathbin{&}3) = 1
  • Misplaced &(3\mathbin{&}3) = 2
  • Misplaced &(4\mathbin{&}3) = 0

这些值的和为


输入样例 2

0 0

输出样例 2

0

均有可能。


输入样例 3

1152921504606846975 1152921504606846975

输出样例 3

499791890

请记得对 取模得到最终结果。

0条搜索结果。