#ABC278Ex. 异或为 1

异或为 1

异或为 1

题目描述

称非负整数序列 SS 为「好序列」,如果满足:

存在 SS 的一个非空(不要求连续)子序列 TT,使得 TT 中所有元素的按位异或为 11。

有一个空序列 AA,以及写有 00 到 2B−12^B-1 之间每个整数各一张的 2B2^B 张卡片。

你重复以下操作,直到 AA 成为好序列:

自由选择一张卡片,将卡片上写的整数追加到 AA 的末尾。然后吃掉这张卡片。(被吃掉的卡片不能再被选择。)

有多少个长度为 NN 的序列可以成为操作结束后的最终 AA?求其个数对 998244353998244353 取模。

什么是按位异或?

非负整数 AA 和 BB 的按位异或 A⊕BA \oplus B 定义如下。

将 A⊕BA \oplus B 写成二进制时,第 kk 位(k≥0k \ge 0)为 11,当且仅当 AA 和 BB 的第 kk 位中恰好有一个为 11,否则为 00。

例如,3⊕5=63 \oplus 5 = 6(二进制:011⊕101=110011 \oplus 101 = 110)。

输入格式

输入按以下格式从标准输入给出:

NN BB

输出格式

输出答案。

样例

2 2
5

以下 5 个长度为 22 的序列可以成为操作结束后的最终 AA:

(0,1)(0, 1)

(2,1)(2, 1)

(2,3)(2, 3)

(3,1)(3, 1)

(3,2)(3, 2)

2022 1119
293184537
200000 10000000
383948354

数据范围

  • 1≤N≤2×1051 \le N \le 2 \times 10^5
  • 1≤B≤1071 \le B \le 10^7
  • N≤2BN \le 2^B
  • NN、BB 均为整数。
难度 NOI/NOI+/CTS
通过率 —
尝试 0
通过 0
ID
2549
类型
传统题
Time Limit
1078ms
Memory Limit
1024MiB
上传者
标签