AT_ndpc2026_m 数字
题目描述
给定一个长度为 $2^N$ 的字符串 $S$,该字符串仅由字符 `1`、`2`、$\dots$、`9` 组成。
对于每个满足 $0 \leq n \leq 2^N - 1$ 的非负整数 $n$,定义 $f(n)$ 如下:
- 枚举所有非负整数 $i$ 满足 $n\,\mathrm{OR}\,i = n$,并将它们升序排列,记为 $i_1, i_2, \dots, i_k$。其中 $\mathrm{OR}$ 表示按位或运算。
- 取 $S$ 的第 $i_1+1$、$i_2+1$、$\dots$、$i_k+1$ 个字符,按顺序依次拼接得到新字符串 $T$。
- 把字符串 $T$ 作为十进制整数解释,得到数值 $X$。定义 $f(n) = X \bmod 998244353$。
请计算所有 $f(0), f(1), \dots, f(2^N-1)$ 的值,并输出下式的结果,其中 $\mathrm{XOR}$ 表示按位异或运算:
$$
\displaystyle \sum_{n=0}^{2^N-1} \left(f(n) \ \mathrm{XOR} \ n\right)
$$
输入格式
输入包含一行:
> $N$ $S$
输出格式
输出一个整数,表示
$$
\displaystyle \sum_{n=0}^{2^N-1} \left(f(n) \ \mathrm{XOR} \ n\right)
$$
的值。
说明/提示
### 样例解释 1
对于所有 $0 \leq n \leq 2^N - 1$,$f(n)$ 的值如下:
- 当 $n=0$ 时,$f(n)=1$
- 当 $n=1$ 时,$f(n)=12$
- 当 $n=2$ 时,$f(n)=13$
- 当 $n=3$ 时,$f(n)=1234$
所以输出为 $(1\ \mathrm{XOR}\ 0) + (12\ \mathrm{XOR}\ 1) + (13\ \mathrm{XOR}\ 2) + (1234\ \mathrm{XOR}\ 3) = 1 + 13 + 15 + 1233 = 1262$。
### 数据范围
- $1 \leq N \leq 22$
- $S$ 是一个长度为 $2^N$ 仅包含 `1`、`2`、$\dots$、`9` 的字符串。
由 ChatGPT 5 翻译