#63613. 排序
排序
暂无测试数据。
题目描述
雷古在深界六层捡到了一个残破的排列 $P$。我们用 $-1$ 来指代缺失的位置。
雷古想知道破损前,所有可能的排列 $P'$ 的权值之和,对 $998244353$ 取模。
排列的定义:一个长度为 $n$ 的排列,$1,2,\cdots,n$ 每个元素恰好出现一次。比如 $\{3,1,2\},\{5,1,3,2,4\}$ 是排列,而 $\{1,1,3\},\{1,2,4,4,5,4\}$ 不是排列。
定义一个排列的权值为,仅通过交换两个元素能将 $P$ 排序的最小操作次数。比如 $\{3,2,1\}$ 可以通过一次交换 1 和 3 来排好序,权值为 1;$\{4,1,3,2\}$ 可以通过先交换 1 和 4,再交换 2 和 4 来排好序,权值为 2。
可能的 $P'$ 的形式化定义:满足对于所有 $1\le i\le n$,有 $P'_i=P_i$ 或 $P'_i=P'\text{中没有出现的数}$。
输入格式
第一行一个整数 $n$,表示排列的长度。
第二行 $n$ 个整数,表示 $P_1,P_2,\cdots,P_n$。
输出格式
一行一个整数表示所有可能的权值之和。
数据范围
$1\le n\le 2000,1\le P_i\le n$ 或 $P_i=-1$。保证 $P$ 合法。设 $k$ 表示 $P$ 中 -1 的个数。
数据点编号 | n 的范围 | k 的范围 |
---|---|---|
1,2,3 | $n\le 10$ | $k\le n$ |
4,5,6,7 | $n\le 50$ | $k \le n$ |
8 | $n\le 2000$ | $k=0$ |
9,10,11 | $n\le 200$ | $k\le n$ |
12,13 | $n\le 2000$ | $k\le \min \{10,n\}$ |
14,15,16 | $n\le 2000$ | $k=n$ |
17,18,19,20 | $n\le 2000$ | $k\le n$ |
3
1 -1 -1
1
6
3 -1 5 6 -1 2
9