4176: Masked Popcount
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:0
解决:0
题目描述
# Masked Popcount
### 内存
1024MB
### 时间
2S
## 题目描述
给定整数 $N$ 和 $M$,计算以下和的结果,对 998244353 取模:
$\displaystyle \sum_{k=0}^{N} \rm{popcount}(k \mathbin{\&} M)$
这里,$\mathbin{\&}$ 表示按位与运算,$\rm{popcount}(x)$ 表示 $x$ 的二进制表示中 1 的个数。
## 输入格式
输入整数 $N$ 和 $M$。
## 输出格式
输出一个整数,表示计算结果。
## 输入输出样例
### 输入样例1
```
4 3
```
### 输出样例1
```
4
```
### 输入样例2
```
0 0
```
### 输出样例2
```
0
```
### 输入样例3
```
1152921504606846975 1152921504606846975
```
### 输出样例3
```
499791890
```
## 数据范围与提示
【样例1说明】
- $\rm{popcount}(0\mathbin{\&}3) = 0$
- $\rm{popcount}(1\mathbin{\&}3) = 1$
- $\rm{popcount}(2\mathbin{\&}3) = 1$
- $\rm{popcount}(3\mathbin{\&}3) = 2$
- $\rm{popcount}(4\mathbin{\&}3) = 0$
这些值的和是 4。
【样例2说明】
N = 0 或 M = 0 是可能的。
【数据范围】
$0 \le N,M < 2^{60}$
## 题目来源
ABC356D