QOJ.ac

QOJ

時間限制: 6 s 記憶體限制: 1024 MB 總分: 100

#5586. 统一的数字

统计

在学年开始时,国际剪纸学院(ICPC)的学生们需要选择他们的学生 ID。学生们可以选择任何小于或等于某个最大值的正整数作为他们的 ID,但没有两名学生可以选择相同的学生 ID。

经过一番商议,学生们决定在他们所有的 ID 之间寻找一些共同点。具体来说,他们希望选择 ID,使得所有学生 ID 的按位与(bitwise AND)结果至少包含 $k$ 个 1-bit。ICPC 的学生们请求你编写一个程序来计算实现这一目标的方案数。如果两种分配方案中至少有一名学生的 ID 不同,则视为不同的分配方案。

两个整数 $a$ 和 $b$ 的按位与是一个整数 $c$,其二进制表示如下:$c$ 的第 $i$ 位为 1 当且仅当 $a$ 和 $b$ 的第 $i$ 位均为 1。C、C++、Java 和 Python 都支持使用 & 运算符计算两个整数的按位与。

这个定义可以推广到数字集合。整数集合 $S$ 的按位与是一个整数 $c$,其二进制表示如下:$c$ 的第 $i$ 位为 1 当且仅当 $S$ 中每个元素的第 $i$ 位均为 1。

输入格式

输入包含一行,包含三个整数 $n$ ($1 \le n \le 5 \times 10^5$),$k$ ($1 \le k \le 5 \times 10^5$) 和 $m$ ($n \le m \le 5 \times 10^6$),其中 $n$ 是学生人数,$k$ 是要求的共同位(1-bit)的最小数量,$m$ 是学生 ID 的最大允许值。

输出格式

输出一个整数,表示从范围 $[1, m]$ 中选择 $n$ 个不同的学生 ID,使得这些学生 ID 的按位与结果中 1-bit 的数量至少为 $k$ 的方案数。由于答案可能很大,请输出其对 $998\,244\,353$ 取模的结果。

说明

有 2 名学生,他们希望其学生 ID 的按位与结果至少有 2 个 1-bit,且最大允许的学生 ID 为 10。有效的 ID 分配方案为 $\{(3, 7), (5, 7), (6, 7), (7, 3), (7, 5), (7, 6)\}$。

样例

样例输入 1

2 2 10

样例输出 1

6

样例输入 2

3 4 14

样例输出 2

0

样例输入 3

2 1 100000

样例输出 3

910073387

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.