#63613. 排序

    ID: 63613 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>计蒜客赛事普及T4/提高T1图的遍历动态规划入门魔扣OJ

排序

暂无测试数据。

题目描述

雷古在深界六层捡到了一个残破的排列 $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