#ATarc178d. [ARC178D] Delete Range Mex

[ARC178D] Delete Range Mex

题目描述

给定一个正整数 NN 和一个长度为 MM 的非负整数序列 A=(A1,A2,,AM)A=(A_{1},A_{2},\dots,A_{M})

这里,AA 的所有元素都是大于等于 00 且小于 NN 的整数,并且互不相同。

请计算有多少个 (0,1,,N1)(0,1,\dots,N-1) 的排列 PP 满足以下条件,并输出答案对 998244353998244353 取模后的结果。

  • 将数列 B=(B1,B2,,BN)B=(B_{1},B_{2},\dots,B_{N})PP 初始化后,可以通过任意次数以下操作将 BB 变为 AA
    • 选择满足 1lrB1\leq l\leq r\leq |B|l,rl,r,如果 mex({Bl,Bl+1,,Br})\mathrm{mex}(\{B_{l},B_{l+1},\dots,B_{r}\})BB 中出现,则将其从 BB 中删除。

mex(X)\mathrm{mex}(X) 的定义如下:对于由非负整数组成的有限集合 XXmex(X)\mathrm{mex}(X) 是满足 xXx\notin X 的最小非负整数 xx

输入格式

输入从标准输入中给出,格式如下:

NN MM A1A_{1} A2A_{2} \cdots AMA_{M}

输出格式

请输出答案。

样例 1

输入

4 2
1 3

输出

8

样例 2

输入

4 4
0 3 2 1

输出

1

样例 3

输入

16 7
9 2 4 0 1 6 7

输出

3520

样例 4

输入

92 4
1 67 16 7

输出

726870122

说明/提示

限制条件

  • 1MN5001\leq M\leq N\leq 500
  • 0Ai<N0\leq A_{i}<N
  • AA 的元素互不相同
  • 所有输入均为整数

样例解释 1

B=(2,1,0,3)B=(2,1,0,3) 初始化后,可以按以下步骤将 BB 变为 AA

  • 选择 (l,r)=(2,4)(l,r)=(2,4),从 BB 中删除 mex({1,0,3})=2\mathrm{mex}(\{1,0,3\})=2,此时 B=(1,0,3)B=(1,0,3)
  • 选择 (l,r)=(3,3)(l,r)=(3,3),从 BB 中删除 mex({3})=0\mathrm{mex}(\{3\})=0,此时 B=(1,3)B=(1,3)。 因此,P=(2,1,0,3)P=(2,1,0,3) 满足条件。满足条件的 PP 一共有 88 种,因此输出 88

样例解释 2

只有 P=(0,3,2,1)P=(0,3,2,1) 满足条件。

样例解释 4

请输出答案对 998244353998244353 取模后的结果。

由 ChatGPT 4.1 翻译