AT_arc132_c.[ARC132C] Almost Sorted
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个由 1,…,n 和 −1 组成的数列 a1,…,an,以及一个整数 d。请问有多少个满足以下条件的数列 p1,…,pn?请输出答案对 998244353 取模后的结果。
- p1,…,pn 是 1,…,n 的一个排列。
- 对于 i=1,…,n,如果 ai=−1,则 ai=pi(也就是说,可以通过将 a1,…,an 中的 −1 项适当替换,得到 p1,…,pn)。
- 对于 i=1,…,n,有 ∣pi−i∣≤d。
输入格式
输入通过标准输入按以下格式给出。
n d a1 a2 … an
输出格式
请输出满足条件的数列个数对 998244353 取模后的结果。
输入输出样例
输入#1
4 2 3 -1 1 -1
输出#1
2
输入#2
5 1 2 3 4 5 -1
输出#2
0
输入#3
16 5 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
输出#3
794673086
说明/提示
限制条件
- 1≤d≤5
- d<n≤500
- 1≤ai≤n 或 ai=−1
- 如果 ai=−1,则 ∣ai−i∣≤d
- 如果 i=j 且 ai,aj=−1,则 ai=aj
- 所有输入均为整数
样例解释 1
(3,2,1,4) 和 (3,4,1,2) 满足条件。
样例解释 2
将 −1 替换后能得到的 1,2,3,4,5 的排列只有 (2,3,4,5,1)。但该排列的第 5 项不满足条件,因此答案为 0。
样例解释 3
请输出答案对 998244353 取模后的结果。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?