No.2670 Sum of Products of Interval Lengths
タグ : / 解いたユーザー数 25
作問者 : suisen / テスター : cureskol ygussany kaichou243
問題文
正整数 $n,m$ が与えられます。
各要素が $1$ 以上 $m$ 以下の整数であるような長さ $n$ の整数列 $A = (A _ 1, A _ 2, \ldots, A _ n)$ に対して、$1\leq l\leq r\leq n$ を満たす整数組 $(l,r)$ が よい組 であるとは、次が成り立つことを言います。
- 全ての $i = 0, 1, \ldots, r - l$ に対して $A _ {l + i} = A _ l + i$ を満たす
また、整数列 $(x _ 1, x _ 2, \ldots, x _ k)$ が よい列 であるとは、次の $2$ つが全て成り立つことを言います。
- $1 = x _ 1\lt x _ 2\lt \cdots \lt x _ k = n + 1$
- 全ての $i = 1,2,\ldots,k - 1$ に対して、組 $(x _ i, x _ {i + 1} - 1)$ は よい組 である
任意の $A$ に対して長さ最小の よい列 $x$ が一意に定まることを証明できるので、これを $x ^ \ast = (x ^ \ast _ 1, x ^ \ast _ 2, \ldots, x ^ \ast _ k)$ とします。そして、$A$ の スコア $f(A)$ を次で定義します。
$$f(A)\coloneqq\prod _ {i = 1} ^ {k - 1} (x ^ \ast _ {i + 1} - x ^ \ast _ i).$$
各要素が $1$ 以上 $m$ 以下の整数であるような長さ $n$ の整数列 $A$ は $m ^ n$ 通り存在しますが、その全てに対する スコア の総和を $998244353$ で割ったあまりを求めてください。
入力
入力は以下の形式で標準入力から与えられます。
$n\ m$
- 入力は全て整数で与えられる。
- $1\leq n\leq 2\times 10 ^ 5$
- $1\leq m\leq 10 ^ {18}$
出力
答えを $1$ 行に出力して改行してください。
サンプル
サンプル1
入力
3 2
出力
12
この入力は $n=3,\ m=2$ を表します。$A$ としてあり得るものは $(1,1,1),\ (1,1,2),\ (1,2,1),\ (1,2,2),\ (2,1,1),\ (2,1,2),\ (2,2,1),\ (2,2,2)$ の $8$ つあります。
例えば $A = (1,1,2)$ に対して、よい列 は $x = (1,2,3,4)$ と $x = (1,2,4)$ の $2$ つ存在しますが、このうち長さ最小のものは $x ^ \ast = (1,2,4)$ です。従って、この $A$ に対するスコアは $(2 - 1) \times (4 - 2) = 2$ と定まります。
$(1,1,1),\ (1,1,2),\ (1,2,1),\ (1,2,2),\ (2,1,1),\ (2,1,2),\ (2,2,1),\ (2,2,2)$ に対するスコアはそれぞれ $1,2,2,2,1,2,1,1$ であることが確かめられるので、答えとしてその総和である $12$ を出力してください。
サンプル2
入力
200000 1000000000000000000
出力
156232207
スコア の総和を $998244353$ で割ったあまりを出力してください。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。