AT_arc163_f [ARC163F] Many Increasing Problems

题目描述

[PCT 君](https://atcoder.jp/contests/arc163/tasks/arc163_f) 出了如下题目。 > **递增问题** > 给定一个长度为 $N$ 的非负整数序列 $A_1,A_2,\dots,A_N$。你可以进行任意次数(也可以不进行)的如下操作: > > - 选择一个满足 $1 \le i \le N$ 的整数 $i$,将 $A_i$ 增加 $1$ 或减少 $1$。 > > 你的目标是将 $A$ 变为广义单调递增序列。请你求出达成目标所需的最小操作次数。 PCT 君认为这个问题太简单,不适合放在比赛最后,于是将其改编如下: > **多个递增问题** > 长度为 $N$ 且所有元素都在 $1$ 到 $M$ 之间的整数序列 $A$ 一共有 $M^N$ 个。对于所有这样的序列 $A$,将其对应的 **递增问题** 的答案求和,并对 $998244353$ 取模,输出结果。 请你解决 **多个递增问题**。

输入格式

输入为一行,格式如下: > $N$ $M$

输出格式

输出 **多个递增问题** 的答案。

说明/提示

### 数据范围 - $1 \le N, M \le 10^5$ ### 样例解释 1 长度为 $2$,所有元素在 $1$ 到 $2$ 之间的数列共有 $M^N = 4$ 个。对于每个序列 $A$,其 **递增问题** 的答案如下: - $A=(1,1)$ 时,答案为 $0$ - $A=(1,2)$ 时,答案为 $0$ - $A=(2,1)$ 时,答案为 $1$ - $A=(2,2)$ 时,答案为 $0$ 因此,答案为 $0+0+1+0=1$。 由 ChatGPT 4.1 翻译