AT_stpc2025_1_d Grid Path Tree
题目描述
给定正整数 $N, M$。
对于 $k = 1, 2, \dots, N + M - 1$,将以下问题的答案记为 $\mathrm{ans}_{k}$。
> 对于长为 $N + M - 1$ 的数列对 $a = (a_{1}, a_{2}, \dots , a_{N + M - 1})$ 和 $b = (b_{1}, b_{2}, \dots, b_{N + M - 1})$,满足以下所有条件的数列对 $(a, b)$ 被称为**良好数列对**:
>
> - $(a_1, b_1) = (1, N+1)$
> - 对于 $i = 2, 3, \dots, N+M-1$,下述任一条件成立:
> - $(a_i, b_i) = (a_{i - 1} + 1, b_{i - 1})$
> - $(a_i, b_i) = (a_{i - 1}, b_{i - 1} + 1)$
> - $(a_{N+M-1}, b_{N+M-1}) = (N, N+M)$
>
> 对于任意**良好数列对** $(a, b)$,我们按照以下条件定义一棵树 $T(a, b)$:
>
> - 这是一棵有 $N + M$ 个顶点的树,顶点从 $1$ 到 $N + M$ 编号
> - 对于 $i = 1, 2, \dots, N + M - 1$,树中存在一条连接顶点 $a_i$ 与顶点 $b_i$ 的边
>
> 对于该树,规定 $\mathrm{dist}(i, j)$ 表示顶点 $i$ 和顶点 $j$ 之间路径上边的数量。树的**得分**定义为满足 $1 \leq i < j \leq N + M$ 且 $\mathrm{dist}(i, j) = k$ 的整数对 $(i, j)$ 的个数。
>
> 请你计算所有**良好数列对** $(a, b)$ 的 $T(a, b)$ 的**得分**之和,对 $998244353$ 取模。
>
> 求出所有 $\mathrm{ans}_1, \mathrm{ans}_2, \dots, \mathrm{ans}_{N+M-1}$,并计算 $ \displaystyle \sum_{k = 1}^{N + M - 1} (\mathrm{ans}_{k}\oplus k) $,输出该值。其中,$\oplus$ 表示按位异或(XOR)运算。
>
> 按位异或(XOR)运算的定义如下:对于非负整数 $A, B$,它们的异或 $A \oplus B$,是将 $A, B$ 用二进制表示后,同一位上仅一方为 $1$ 时该位结果为 $1$,否则为 $0$。
>
> 例如,$3 \oplus 5 = 6$(即 $011 \oplus 101=110$)。
输入格式
输入为一行,包括:
> $N$ $M$
输出格式
输出所求答案。
说明/提示
### 样例解释 1
$(\mathrm{ans}_1,\mathrm{ans}_2,\mathrm{ans}_3) = (6, 4, 2)$,所以输出应为 $(6\oplus 1) + (4\oplus 2) + (2\oplus 3) = 7 + 6 + 1 = 14$。
### 数据范围
- 输入均为整数
- $1 \leq N \leq 5\times 10^{6}$
- $1 \leq M \leq 5\times 10^{6}$
由 ChatGPT 5 翻译