No.3045 反復重み付き累積和
レベル : / 実行時間制限 : 1ケース 5.000秒 / メモリ制限
: 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 36
作問者 :
Nauclhlt🪷
/ テスター :
eiram
naniwazu
タグ : / 解いたユーザー数 36
作問者 :


問題文最終更新日: 2025-02-28 21:27:41
ストーリー
nauclhltくんは普通の累積和じゃ満足出来なくなりました。また、累積和をとる回数も並大抵のものでは満たされません。
例えば、$10^9$回累積和を取ってみるとか……
問題文
ある数列$P$の重み$K$の累積和を次を満たす長さ$|P|$の数列$Q$として定義します。
- $\displaystyle Q_i=\sum_{j=1}^i K^{i-j}P_j\ (1\leq i\leq |P|)$
ここで$|P|$は数列$P$の長さです。
長さ$N$の数列$A=(A_1, A_2, \cdots, A_N)$が与えられます。
以下の形式で与えられる$Q$個のクエリを順に処理してください。
1 k x
: 「$A$を$A$の重み$k$の累積和で置き換える」という操作を$x$回繰り返す2 x
: $A_x$の値を$998244353$で割った余りを出力する
入力
$N\ Q$ $A_1\ A_2\ \cdots\ A_N$ $query_1$ $query_2$ $\vdots$ $query_Q$
各クエリは次のいずれかの形式で与えられます。
$1\ k\ x$
$2\ x$
- $1\leq N\leq 2000$
- $0\leq A_i\lt 998244353$
- $1\leq Q\leq 2000$
1 k x
のクエリについて$1\leq k\lt 998244353, 1\leq x\leq 10^9$2 x
のクエリについて$1\leq x\leq N$2 x
のクエリは少なくとも1個以上与えられる- 入力はすべて整数
出力
2 x
の形式のクエリの個数を$m$として、$m$行出力してください。
$i(1\leq i\leq m)$行目には$i$番目のクエリに対する答えを出力してください。
最後に改行してください。
サンプル
サンプル1
入力
4 3 3 1 4 1 2 3 1 2 1 2 3
出力
4 18
- 1つ目のクエリについて、$A_3=4$より
4
を出力します。 - 2つ目のクエリについて、$A$の重み$2$の累積和は$(3, 7, 18, 37)$です。よって$A$をこの数列で置き換えます。
- 3つ目のクエリについて、$A_3=18$より
18
を出力します。
サンプル2
入力
3 2 1 1 2 1 3 2 2 2
出力
7
$A$の重み$3$の累積和は$(1, 4, 14)$です。さらにこの数列の重み$3$の累積和を求めると$(1, 7, 35)$となります。よって1つ目のクエリ後$A=(1, 7, 35)$です。
2つ目のクエリでは以上の結果より$A_2=7$なので7
を出力します。
サンプル3
入力
10 2 0 9 9 8 2 4 4 3 5 3 1 998244352 998244353 2 10
出力
3
$998244353$で割った余りを出力してください。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。