AT_abc406_e [ABC406E] Popcount Sum 3

题目描述

[problemUrl]: https://atcoder.jp/contests/abc406/tasks/abc406_e 给定正整数 $N, K$。 请求出所有小于等于 $N$ 的正整数 $x$ 中,满足以下条件的数的**总和**,并将结果对 $998244353$ 取模。 - $x$ 的 $\mathrm{popcount}$ 值恰好为 $K$。 给定 $T$ 个测试用例,请分别求出答案。 $\mathrm{popcount}$ 指的是,对于正整数 $y$,其 $\mathrm{popcount}$ 值 $\mathrm{popcount}(y)$ 表示 $y$ 在二进制表示中数字 $1$ 出现的次数。例如,$\mathrm{popcount}(5)=2$,$\mathrm{popcount}(16)=1$,$\mathrm{popcount}(25)=3$。

输入格式

输入按以下格式从标准输入给出。 > $T$ > $\mathrm{case}_1$ > $\mathrm{case}_2$ > $\vdots$ > $\mathrm{case}_T$ $\mathrm{case}_i$ 表示第 $i$ 个测试用例。每个测试用例按以下格式给出。 > $N$ $K$

输出格式

输出 $T$ 行。第 $i$ 行 $(1 \leq i \leq T)$ 输出第 $i$ 个测试用例的答案。

说明/提示

**「数据范围」** - $1 \leq T \leq 100$ - $1 \leq N < 2^{60}$ - $1 \leq K \leq 60$ - $T, N, K$ 均为整数 **「样例 1 解释」** 对于第 $1$ 个测试用例,小于等于 $20$ 的正整数中,$\mathrm{popcount}$ 值为 $2$ 的数有 $3, 5, 6, 9, 10, 12, 17, 18, 20$,共 $9$ 个,它们的总和是 $100$。 $100$ 对 $998244353$ 取模的结果是 $100$,因此第 $1$ 行输出 $100$。 请注意需要输出对 $998244353$ 取模的余数。