A92147.「2021 营员交流」数串

省选/NOI-

通过率:0%

时间限制:1.00s

内存限制:512MB

题目描述

本题包含三个问题:

  • 问题 0:给定一个长度为 nn 的序列以及它的后缀数组 p\boldsymbol p,求这个序列中有多少个不同的数。
  • 问题 1:给定一个长度为 nn 的排列 p\boldsymbol p,对于所有满足后缀数组为 p\boldsymbol p 的长度为 nn 的序列,求不同的数的数量的最小值。
  • 问题 2:给定一个长度为 nn 的残缺的排列 p~\tilde {\boldsymbol p} (有 kk 个位置未知),对于所有 k!k! 种完整的排列,求问题 1 的答案之和。

在不同的测试点中,你将可能需要回答不同的问题。我们将用 op\mathrm{op} 来指代你需要回答的问题编号 (对应上述 0,1,20, 1, 2)。

在问题 2 中,由于答案可能很大,因此你只需要输出答案对 998244353998244353 取模的结果即可。

输入格式

第一行包含两个非负整数 n,opn, \mathrm{op},分别表示鼠的数量和子问题的类型。

如果 op=0\mathrm{op} = 0,则第二行包含 nn 个正整数 a1,a2,…,ana_1, a_2, \ldots, a_n,表示每只鼠的体型大小;第三行包含 nn 个正整数 p1,p2,⋯ ,pnp_1, p_2, \cdots, p_n,表示小 S 得到的排列。

如果 op=1\mathrm{op} = 1,则第二行包含 nn 个正整数 p1,p2,…,pnp_1, p_2, \ldots, p_n,表示小 S 得到的排列。

如果 op=2\mathrm{op} = 2,则第二行包含 nn 个非负整数 p~1,p~2,…,p~n\tilde p_1, \tilde p_2, \ldots, \tilde p_n,表示小 S 的残缺的排列。p~i=0\tilde p_i = 0 表示这一个值被鼠 "咬掉" 的,否则 p~i\tilde p_i 表示排列中第 ii 位的值。

每行中的两个整数之间均用一个空格隔开,鼠的编号是从 11 开始的。

输出格式

输出一行一个整数,表示对应问题的答案对 998244353998244353 取模的结果。

输入输出样例

  • 输入#1

    3 0
    10 20 30
    1 2 3
    

    输出#1

    3
    
  • 输入#2

    3 1
    1 2 3
    

    输出#2

    2
    
  • 输入#3

    3 2
    0 0 3
    

    输出#3

    5
    

说明/提示

对于所有的测试点,均满足 1≤n≤5×105;1≤ai≤109;1≤pi≤n;0≤p~i≤n1 \leq n \leq 5 \times 10^5; 1 \leq a_i \leq 10^9; 1 \leq p_i \leq n; 0 \leq \tilde p_i \leq n,当 op=2\mathrm{op} = 2 时存在至少一个 ii 使得 p~i=0\tilde p_i = 0。

问题类型 (op=\mathrm{op} =) 测试点编号 nn 其它性质
0 1 ≤10\leq 10 无
0 2 ≤5×105\leq 5 \times 10^5 无
0 3 ≤5×105\leq 5 \times 10^5 无
1 4 =3= 3 无
1 5 =5= 5 无
1 6 ≤10\leq 10 无
1 7 ≤500\leq 500 无
1 8 ≤5000\leq 5000 无
1 9 ≤5000\leq 5000 无
1 10 ≤50000\leq 50000 无
1 11 ≤50000\leq 50000 无
1 12 ≤5×105\leq 5 \times 10^5 pi=ip_i = i
1 13 ≤5×105\leq 5 \times 10^5 无
1 14 ≤5×105\leq 5 \times 10^5 无
2 15 =3= 3 无
2 16 =5= 5 无
2 17 ≤10\leq 10 无
2 18 ≤500\leq 500 满足 p~i=0\tilde p_i = 0 的 ii 不超过 55 个
2 19 ≤5000\leq 5000 无
2 20 ≤5000\leq 5000 满足 p~i=0\tilde p_i = 0 的 ii 不超过 55 个
2 21 ≤50000\leq 50000 无
2 22 ≤50000\leq 50000 所有 p~i=0\tilde p_i = 0
2 23 ≤5×105\leq 5 \times 10^5 存在整数 tt (1≤t<n1 \leq t < n),满足 p~i={ii≤t0i>t\tilde p_i = \begin{cases} i & i \leq t \\ 0 & i > t \end{cases}
2 24 ≤5×105\leq 5 \times 10^5 存在整数 tt (1≤t<n1 \leq t < n),满足 p~i=0\tilde p_i = 0 当且仅当 i>ti > t
2 25 ≤5×105\leq 5 \times 10^5 无

输入解题思路,AI测评打分。不知道怎么写?

首页