AT_abc278_h [ABC278Ex] make 1
题目描述
我们称满足下列条件的非负整数序列 $S$ 为**好序列**:
- 存在 $S$ 的一个(不一定连续的)非空子序列 $T$,使得 $T$ 的所有元素的按位异或结果为 $1$。
现有一个空序列 $A$,以及 $2^B$ 张卡片,每张卡片上写有一个 $0$ 到 $2^B-1$ 之间的整数,且每个数各出现一次。
你可以重复以下操作,直到 $A$ 变成好序列为止:
- 任意选择一张卡片,将卡片上的数添加到 $A$ 的末尾,并吃掉这张卡片(被吃掉的卡片不能再选)。
在所有可能的操作后,长度为 $N$ 的 $A$ 有多少种不同的取法?请输出答案对 $998244353$ 取模后的结果。
什么是按位异或?非负整数 $A,\ B$ 的按位异或 $A\oplus B$ 定义如下:
- $A\oplus B$ 的二进制表示中,第 $2^k$ 位($k\geq 0$)的数,如果 $A$ 和 $B$ 的二进制表示中该位只有一个为 $1$,则为 $1$,否则为 $0$。
例如,$3\oplus 5 = 6$(二进制表示为:$011\oplus 101 = 110$)。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $B$
输出格式
请输出答案。
说明/提示
### 数据范围
- $1 \leq N \leq 2 \times 10^5$
- $1 \leq B \leq 10^7$
- $N \leq 2^B$
- $N,\ B$ 为整数
### 样例解释 1
所有可能的长度为 $2$ 的 $A$ 如下,共有 $5$ 种:
- $(0, 1)$
- $(2, 1)$
- $(2, 3)$
- $(3, 1)$
- $(3, 2)$
由 ChatGPT 4.1 翻译