【题目描述】
对于一个长度为 n 的整数数组,称一个整数 A 可以被该数组表示当且仅当该数组存在异或和为A 的子序列。
给定 n, k, X,你需要对每个 i ∈ [1, k] ,求出有多少个值域在 [1, $2^k$ − 1] 的长为 n 的数组,可以表示 $2^i$ 个整数且不能表示 X,对 998244353 取模。
为了减少输出量,你只需要输出 k 个答案对 998244353 取模后值的异或和即可。
【输入格式】
一行,三个整数 n, k, X。
【输出格式】
一行,一个整数,表示答案。
【样例 1 输入】
2 3 0
【样例 1 输出】
42
【样例 2 输入】
1919 810 114514
【样例 2 输出】
819268765
【数据范围与提示】
对于所有测试点:1 ≤ n ≤ $10^9$,1 ≤ k ≤ $10^6$,0 ≤ X ≤ min($10^6, 2^k − 1$)。
每个测试点的具体限制见下表:
子任务编号 | 特殊限制 | 分数 | 子任务依赖 |
---|---|---|---|
1 | n, k ≤ 10^3 | 30 | |
2 | 无 | 70 | 1 |