AT_arc174_e [ARC174E] Existence Counting
Description
[problemUrl]: https://atcoder.jp/contests/arc174/tasks/arc174_e
整数 $ N,K $ が与えられます。このとき、以下の条件を全て満たす長さ $ K $ の数列 $ a=(a_1,a_2,\dots,a_K) $ を考えます。
- $ a_i $ は $ 1\ \le\ a_i\ \le\ N $ を満たす整数である
- $ a $ の全ての要素は相異なる
$ a $ として考えられる数列を辞書順に全て並べた 「数列の列」 を辞書 $ s $ とします。
辞書 $ s $ 中に存在する数列 $ P $ が与えられるので、整数 $ t=1,2,\dots,N $ に対して以下の質問に答えてください。
- 以下の条件を全て満たす数列 $ b $ の個数を $ 998244353 $ で割った余りを求めよ。
- 数列 $ b $ は辞書 $ s $ 中に存在する。
- 数列 $ b $ 中に整数 $ t $ が含まれる。
- 数列 $ b $ は辞書順で数列 $ P $ 以下である。
数列の辞書順とは? 数列 $ A\ =\ (A_1,\ \ldots,\ A_{|A|}) $ が $ B\ =\ (B_1,\ \ldots,\ B_{|B|}) $ より**辞書順で真に小さい**とは、下記の 1. と 2. のどちらかが成り立つことを言います。 1. $ |A|\ かつ\ (A_{1},\ldots,A_{|A|})\ =\ (B_1,\ldots,B_{|A|}) $ である。
2. ある整数 $ 1\leq\ i\leq\ \min\{|A|,|B|\} $ が存在して、下記の $ 2 $ つがともに成り立つ。
- $ (A_{1},\ldots,A_{i-1})\ =\ (B_1,\ldots,B_{i-1}) $
- $ A_i $
Input Format
N/A
Output Format
N/A
Explanation/Hint
### 制約
- 入力は全て整数
- $ 1\ \le\ K\ \le\ N\ \le\ 3\ \times\ 10^5 $
- $ P $ は問題文中の条件を満たす。
### Sample Explanation 1
この入力では、 $ N=4,K=2 $ です。 このとき、辞書 $ s=((1,2),(1,3),(1,4),(2,1),(2,3),(2,4),(3,1),(3,2),(3,4),(4,1),(4,2),(4,3)) $ となります。 辞書 $ s $ に含まれ、かつ辞書順で $ (3,2) $ 以下である数列のうち、 - $ 1 $ が含まれるものは $ (1,2),(1,3),(1,4),(2,1),(3,1) $ の $ 5 $ 個 - $ 2 $ が含まれるものは $ (1,2),(2,1),(2,3),(2,4),(3,2) $ の $ 5 $ 個 - $ 3 $ が含まれるものは $ (1,3),(2,3),(3,1),(3,2) $ の $ 4 $ 個 - $ 4 $ が含まれるものは $ (1,4),(2,4) $ の $ 2 $ 個 です。