Type: RemoteJudge 2000ms 1024MiB

排序

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题面翻译

给定一个长度为 nn 的数字序列 AA,由 11nn 之间的整数和 1-1 组成。还有一个整数 dd

现在要对这个序列进行变换,将 AA 中所有为 1-1aia_i 替换成一个数字,使得得到的序列 PP,满足:

  • ai1,pi=ai\forall a_i \ne -1,p_i = a_i
  • PP11nn 的一个排列。
  • piid\forall |p_i-i| \leq d

试问有多少种这样的排列 PP。答案对 998244353998244353 取膜。

题目描述

1,, n 1,\dots,\ n 1 -1 からなる数列 a1,,an a_1,\dots,a_n と整数 d d が与えられます。 以下の条件を満たす数列 p1,,pn p_1,\dots,p_n はいくつありますか? 答えを 998244353 998244353 で割ったあまりを出力してください。

  • p1,,pn p_1,\dots,p_n 1,, n 1,\dots,\ n の順列
  • i=1,,n i=1,\dots,n について、 ai 1 a_i\neq\ -1 ならば ai=pi a_i=p_i (つまり、a1,,an a_1,\dots,a_n 1 -1 の項を適切に置き換えることで p1,,pn p_1,\dots,p_n に書き換えできる)
  • i=1,,n i=1,\dots,n について、 pi  i d |p_i\ -\ i|\le\ d

输入格式

入力は以下の形式で標準入力から与えられる。

n n d d a1 a_1 \dots an a_n

输出格式

条件を満たす数列の数を 998244353 998244353 で割ったあまりを出力せよ。

样例 #1

样例输入 #1

4 2
3 -1 1 -1

样例输出 #1

2

样例 #2

样例输入 #2

5 1
2 3 4 5 -1

样例输出 #2

0

样例 #3

样例输入 #3

16 5
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1

样例输出 #3

794673086

提示

制約

  • 1  d  5 1\ \le\ d\ \le\ 5
  • d < n  500 d\ <\ n\ \le\ 500
  • 1 ai  n 1\le\ a_i\ \le\ n または ai=1 a_i=-1
  • ai 1 a_i\neq\ -1 ならば aii d |a_i-i|\le\ d
  • i j i\neq\ j かつ ai, aj  1 a_i,\ a_j\ \neq\ -1 ならば ai aj a_i\neq\ a_j
  • 入力はすべて整数

Sample Explanation 1

(3,2,1,4) (3,2,1,4) (3,4,1,2) (3,4,1,2) が条件を満たします。

Sample Explanation 2

1 -1 を置き換えて得られる 1,2,3,4,5 1,2,3,4,5 の順列は (2,3,4,5,1) (2,3,4,5,1) のみです。 この順列は、5 5 項目が条件を満たさないため、答えは 0 0 です。

Sample Explanation 3

998244353 998244353 で割ったあまりを出力してください。

12.10模拟赛

Not Attended
Status
Done
Rule
Ledo
Problem
5
Start at
2023-12-10 8:30
End at
2023-12-10 18:30
Duration
10 hour(s)
Host
Partic.
9