atcoder#ABC283H. [ABC283Ex] Popcount Sum

[ABC283Ex] Popcount Sum

题目描述

1 1 以上 N N 以下の整数であって、M M で割った余りが R R になるものすべてに対する popcount の総和を求めてください。
ただし、正整数 X X に対して X X の popcount とは X X を二進表記したときの 1 1 の個数、すなわち 2k 2^k の位が 1 1 となる非負整数 k k の個数のことです。
1 1 つの入力につき、 T T 個のテストケースに答えてください。

输入格式

入力は以下の形式で標準入力から与えられる。入力の 1 1 行目は以下の通りである。

T T

そして、T T 個のテストケースが続く。これらはそれぞれ以下の形式で与えられる。

N N M M R R

输出格式

T T 行出力せよ。i i 行目には i i 番目のテストケースに対する答えを出力せよ。

题目大意

popcount(n)\text{popcount}(n)nn 的二进制表示中 11 的个数。

现在有 TT 组询问,每组询问给定 n,m,rn, m, r,请求出

imodm=rnpopcount(i)\sum_{i\bmod m = r}^n \text{popcount}(i)

即小于等于 nn 且模 mmrr 的正整数的 popcount\text{popcount} 之和。

$1\le T \le 10^5,\ 1\le m \le n \le 10^9,\ 0\le r < m$。

2
12 5 1
6 1 0
6
9

提示

制約

  • 1  T  105 1\ \leq\ T\ \leq\ 10^5
  • 1  M  N  109 1\ \leq\ M\ \leq\ N\ \leq\ 10^9
  • 0  R < M 0\ \leq\ R\ <\ M
  • 入力はすべて整数

Sample Explanation 1

1 1 つ目のテストケースでは、1 1 の popcount が 1 1 6 6 の popcount が 2 2 11 11 の popcount が 3 3 であるため 1+2+3 1+2+3 の計算結果である 6 6 を出力します。 2 2 つ目のテストケースでは、1 1 の popcount が 1 1 2 2 の popcount が 1 1 3 3 の popcount が 2 2 4 4 の popcount が 1 1 5 5 の popcount が 2 2 6 6 の popcount が 2 2 であるため 1+1+2+1+2+2 1+1+2+1+2+2 の計算結果である 9 9 を出力します。