CF1677D Tokitsukaze and Permutations
题目描述
有一个长度为 $n$ 的排列 $p$,将执行 $k$ 次操作。
操作过程:对于 $1\sim n$ 中,当 $p_i>p_{i+1}$,则交换 $p_{i},p_{i+1}$。
经过 $k$ 次操作之后,得到了一个新数组 $a$,再定义数组 $v$ 表示在 $1\sim i-1$ 中比 $a_i$ 大的个数。
现在给定 $v$,但是有可能其中的值为 $-1$,这表示它的值并不确定。求有多少种 $p$ 满足在 $k$ 次操作后得到的 $v$ 和给定确定值一致,结果对 $998244353$ 取模。
输入格式
第一行一个正整数 $t(1\le t \le 10^3)$ 表示测试用例数量。
对于每组测试用例:
第一行两个正整数 $n(1\le n \le 10^6),k(0 \le k \le n-1)$,表示长度,操作次数。
第二行包含 $n$ 个整数 $v_{i}(-1\le v_{i}\le i-1)$,当 $v_{i}=-1$ 时表示该值不确定。
保证总和 $n$ 在所有测试用例中不超过 $10^6$。
输出格式
对于每组测试用例,一行一个正整数表示不同排列的数量对 $998244353$ 取模的结果。
说明/提示
In the first test case, only permutation $ p=[5,4,3,2,1] $ satisfies the constraint condition.
In the second test case, there are $ 6 $ permutations satisfying the constraint condition, which are:
- $ [3,4,5,2,1] $ $ \rightarrow $ $ [3,4,2,1,5] $ $ \rightarrow $ $ [3,2,1,4,5] $
- $ [3,5,4,2,1] $ $ \rightarrow $ $ [3,4,2,1,5] $ $ \rightarrow $ $ [3,2,1,4,5] $
- $ [4,3,5,2,1] $ $ \rightarrow $ $ [3,4,2,1,5] $ $ \rightarrow $ $ [3,2,1,4,5] $
- $ [4,5,3,2,1] $ $ \rightarrow $ $ [4,3,2,1,5] $ $ \rightarrow $ $ [3,2,1,4,5] $
- $ [5,3,4,2,1] $ $ \rightarrow $ $ [3,4,2,1,5] $ $ \rightarrow $ $ [3,2,1,4,5] $
- $ [5,4,3,2,1] $ $ \rightarrow $ $ [4,3,2,1,5] $ $ \rightarrow $ $ [3,2,1,4,5] $
So after exactly $ 2 $ times of swap they will all become $ a=[3,2,1,4,5] $ , whose value sequence is $ v=[0,1,2,0,0] $ .