C - Sequence Scores Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 600600

問題文

11 以上 MM 以下の整数から成る長さ NN の数列 AA に対して, f(A)f(A) を以下のように定義します.

  • 長さ NN の数列 XX があり,初め全ての要素は 00 である.f(A)f(A) を,次の操作を繰り返して XXAA に等しくするための最小の操作回数とする.
    • 1lrN1 \leq l \leq r \leq N1vM1 \leq v \leq M を指定する.lirl \leq i \leq r に対して XiX_imax(Xi,v)\max(X_i, v) で置き換える.

AA として考えられる数列は MNM^N 通りあります.これら全ての数列に対する f(A)f(A) の和を 998244353998244353 で割った余りを求めてください.

制約

  • 1N,M50001 \leq N, M \leq 5000
  • 入力は全て整数

入力

入力は以下の形式で標準入力から与えられる.

NN MM

出力

全ての数列に対する f(A)f(A) の和を 998244353998244353 で割った余りを出力せよ.


入力例 1Copy

Copy
2 3

出力例 1Copy

Copy
15

32=93 ^ 2 = 9 通りの数列と,それに対する ff の値は以下の通りです.

  • A=(1,1)A = (1, 1) のとき,(l=1,r=2,v=1)(l = 1, r = 2, v = 1) として 11 回の操作で可能なので,f(A)=1f(A) = 1 です.
  • A=(1,2)A = (1, 2) のとき,(l=1,r=2,v=1)(l = 1, r = 2, v = 1) , (l=2,r=2,v=2)(l = 2, r = 2, v = 2) として 22 回の操作で可能なので,f(A)=2f(A) = 2 です.
  • A=(1,3)A = (1, 3) のとき,(l=1,r=2,v=1)(l = 1, r = 2, v = 1) , (l=2,r=2,v=3)(l = 2, r = 2, v = 3) として 22 回の操作で可能なので,f(A)=2f(A) = 2 です.
  • A=(2,1)A = (2, 1) のとき,(l=1,r=2,v=1)(l = 1, r = 2, v = 1) , (l=1,r=1,v=2)(l = 1, r = 1, v = 2) として 22 回の操作で可能なので,f(A)=2f(A) = 2 です.
  • A=(2,2)A = (2, 2) のとき,(l=1,r=2,v=2)(l = 1, r = 2, v = 2) として 11 回の操作で可能なので,f(A)=1f(A) = 1 です.
  • A=(2,3)A = (2, 3) のとき,(l=1,r=2,v=2)(l = 1, r = 2, v = 2) , (l=2,r=2,v=3)(l = 2, r = 2, v = 3) として 22 回の操作で可能なので,f(A)=2f(A) = 2 です.
  • A=(3,1)A = (3, 1) のとき,(l=1,r=2,v=1)(l = 1, r = 2, v = 1) , (l=1,r=1,v=3)(l = 1, r = 1, v = 3) として 22 回の操作で可能なので,f(A)=2f(A) = 2 です.
  • A=(3,2)A = (3, 2) のとき,(l=1,r=2,v=2)(l = 1, r = 2, v = 2) , (l=1,r=1,v=3)(l = 1, r = 1, v = 3) として 22 回の操作で可能なので,f(A)=2f(A) = 2 です.
  • A=(3,3)A = (3, 3) のとき,(l=1,r=2,v=3)(l = 1, r = 2, v = 3) として 11 回の操作で可能なので,f(A)=1f(A) = 1 です.

これらの和は 3×1+6×2=153 \times 1 + 6 \times 2 = 15 です.


入力例 2Copy

Copy
3 2

出力例 2Copy

Copy
15

入力例 3Copy

Copy
34 56

出力例 3Copy

Copy
649717324

Score : 600600 points

Problem Statement

For a sequence AA of length NN consisting of integers between 11 and MM (inclusive), let us define f(A)f(A) as follows:

  • We have a sequence XX of length NN, where every element is initially 00. f(A)f(A) is the minimum number of operations required to make XX equal AA by repeating the following operation:
    • Specify 1lrN1 \leq l \leq r \leq N and 1vM1 \leq v \leq M, then replace XiX_i with max(Xi,v)\max(X_i, v) for each lirl \leq i \leq r.

Find the sum, modulo 998244353998244353, of f(A)f(A) over all MNM^N sequences that can be AA.

Constraints

  • 1N,M50001 \leq N, M \leq 5000
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

NN MM

Output

Print the sum of f(A)f(A) over all sequences AA, modulo 998244353998244353.


Sample Input 1Copy

Copy
2 3

Sample Output 1Copy

Copy
15

The 32=93 ^ 2 = 9 sequences and the value of ff for those are as follows:

  • For A=(1,1)A = (1, 1), we can make XX equal it with one operation with (l=1,r=2,v=1)(l = 1, r = 2, v = 1), so f(A)=1f(A) = 1.
  • For A=(1,2)A = (1, 2), we can make XX equal it with two operations with (l=1,r=2,v=1)(l = 1, r = 2, v = 1) and (l=2,r=2,v=2)(l = 2, r = 2, v = 2), so f(A)=2f(A) = 2.
  • For A=(1,3)A = (1, 3), we can make XX equal it with two operations with (l=1,r=2,v=1)(l = 1, r = 2, v = 1) and (l=2,r=2,v=3)(l = 2, r = 2, v = 3), so f(A)=2f(A) = 2.
  • For A=(2,1)A = (2, 1), we can make XX equal it with two operations with (l=1,r=2,v=1)(l = 1, r = 2, v = 1) and (l=1,r=1,v=2)(l = 1, r = 1, v = 2), so f(A)=2f(A) = 2.
  • For A=(2,2)A = (2, 2), we can make XX equal it with one operation with (l=1,r=2,v=2)(l = 1, r = 2, v = 2), so f(A)=1f(A) = 1.
  • For A=(2,3)A = (2, 3), we can make XX equal it with two operations with (l=1,r=2,v=2)(l = 1, r = 2, v = 2) , (l=2,r=2,v=3)(l = 2, r = 2, v = 3), so f(A)=2f(A) = 2.
  • For A=(3,1)A = (3, 1), we can make XX equal it with two operations with (l=1,r=2,v=1)(l = 1, r = 2, v = 1) and (l=1,r=1,v=3)(l = 1, r = 1, v = 3) so f(A)=2f(A) = 2.
  • For A=(3,2)A = (3, 2), we can make XX equal it with two operations with (l=1,r=2,v=2)(l = 1, r = 2, v = 2) and (l=1,r=1,v=3)(l = 1, r = 1, v = 3), so f(A)=2f(A) = 2.
  • For A=(3,3)A = (3, 3), we can make XX equal it with one operation with (l=1,r=2,v=3)(l = 1, r = 2, v = 3), so f(A)=1f(A) = 1.

The sum of these values is 3×1+6×2=153 \times 1 + 6 \times 2 = 15.


Sample Input 2Copy

Copy
3 2

Sample Output 2Copy

Copy
15

Sample Input 3Copy

Copy
34 56

Sample Output 3Copy

Copy
649717324


2025-03-29 (Sat)
19:30:13 +00:00