AT_arc178_d.[ARC178D] Delete Range Mex
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个正整数 N 和一个长度为 M 的非负整数序列 A=(A1,A2,…,AM)。
这里,A 的所有元素都是大于等于 0 且小于 N 的整数,并且互不相同。
请计算有多少个 (0,1,…,N−1) 的排列 P 满足以下条件,并输出答案对 998244353 取模后的结果。
- 将数列 B=(B1,B2,…,BN) 用 P 初始化后,可以通过任意次数以下操作将 B 变为 A:
- 选择满足 1≤l≤r≤∣B∣ 的 l,r,如果 mex({Bl,Bl+1,…,Br}) 在 B 中出现,则将其从 B 中删除。
mex(X) 的定义如下:对于由非负整数组成的有限集合 X,mex(X) 是满足 x∈/X 的最小非负整数 x。
输入格式
输入从标准输入中给出,格式如下:
N M A1 A2 ⋯ AM
输出格式
请输出答案。
输入输出样例
输入#1
4 2 1 3
输出#1
8
输入#2
4 4 0 3 2 1
输出#2
1
输入#3
16 7 9 2 4 0 1 6 7
输出#3
3520
输入#4
92 4 1 67 16 7
输出#4
726870122
说明/提示
限制条件
- 1≤M≤N≤500
- 0≤Ai<N
- A 的元素互不相同
- 所有输入均为整数
样例解释 1
将 B=(2,1,0,3) 初始化后,可以按以下步骤将 B 变为 A:
- 选择 (l,r)=(2,4),从 B 中删除 mex({1,0,3})=2,此时 B=(1,0,3)。
- 选择 (l,r)=(3,3),从 B 中删除 mex({3})=0,此时 B=(1,3)。
因此,P=(2,1,0,3) 满足条件。满足条件的 P 一共有 8 种,因此输出 8。
样例解释 2
只有 P=(0,3,2,1) 满足条件。
样例解释 4
请输出答案对 998244353 取模后的结果。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?