#4326. 掩码位计数(Masked Popcount)

掩码位计数(Masked Popcount)

题目描述

给定整数 NNMM,计算以下和的结果,对 998244353 取模:

$\displaystyle \sum_{k=0}^{N} \rm{popcount}(k \mathbin{\&} M)$

这里,&\mathbin{\&} 表示按位与运算,popcount(x)\rm{popcount}(x) 表示 xx 的二进制表示中 1 的个数。

输入格式

输入整数 NNMM

输出格式

输出一个整数,表示计算结果。

样例

4 3
4
0 0
0
1152921504606846975 1152921504606846975
499791890

样例解释

【样例1说明】

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

这些值的和是 4。

【样例2说明】
N = 0 或 M = 0 是可能的。

数据范围

0N,M<2600 \le N,M < 2^{60}

来源

  • AtCoder ABC356D