AT_arc186_d.[ARC186D] Polish Mania

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

非空非负整数序列 (V1, V2, …, VM)(V_1,\ V_2,\ \dots,\ V_M) 被称为 Polish,其递归定义如下:

  • 存在 V1V_1 个 Polish 序列 W1, W2, …, WV1W_1,\ W_2,\ \dots,\ W_{V_1},使得将序列 (V1), W1, W2, …, WV1(V_1),\ W_1,\ W_2,\ \dots,\ W_{V_1} 按顺序连接后,恰好得到序列 (V1, V2, …, VM)(V_1,\ V_2,\ \dots,\ V_M)。

特别地,序列 (0)(0) 是 Polish。

给定一个长度为 NN 的非负整数序列 (A1, A2, …, AN)(A_1,\ A_2,\ \dots,\ A_N)。请你求出,长度为 NN、字典序不大于 (A1, A2, …, AN)(A_1,\ A_2,\ \dots,\ A_N) 的 Polish 序列的个数,对 998244353998244353 取模。

关于序列的字典序:设 S=(S1,S2,…,S∣S∣)S = (S_1,S_2,\ldots,S_{|S|}),T=(T1,T2,…,T∣T∣)T = (T_1,T_2,\ldots,T_{|T|}),则 SS 的字典序小于 TT,当且仅当满足以下两条之一(其中 ∣S∣, ∣T∣|S|,\ |T| 分别为 S,TS,T 的长度):

  1. ∣S∣<∣T∣|S| < |T| 且 (S1,S2,…,S∣S∣)=(T1,T2,…,T∣S∣)(S_1,S_2,\ldots,S_{|S|}) = (T_1,T_2,\ldots,T_{|S|})。
  2. 存在整数 1≤i≤min⁡{∣S∣, ∣T∣}1 \leq i \leq \min\lbrace |S|,\ |T| \rbrace,使得以下两点同时成立:
    • (S1,S2,…,Si−1)=(T1,T2,…,Ti−1)(S_1,S_2,\ldots,S_{i-1}) = (T_1,T_2,\ldots,T_{i-1});
    • SiS_i 小于 TiT_i(按数值比较)。

输入格式

输入以如下格式从标准输入读入:

NN A1A_1 A2A_2 …\dots ANA_N

输出格式

请输出满足条件的序列个数,对 998244353998244353 取模。

输入输出样例

  • 输入#1

    6
    1 1 1 2 0 0

    输出#1

    2
  • 输入#2

    11
    3 3 4 4 5 5 6 6 7 7 8

    输出#2

    13002
  • 输入#3

    19
    18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18

    输出#3

    477638700
  • 输入#4

    4
    1 1 0 0

    输出#4

    0

说明/提示

数据范围

  • 1≤N≤3×1051\leq N \leq 3\times 10^5
  • 0≤Ai<N0\leq A_i < N
  • 输入均为整数

样例解释 1

(1, 1, 1, 1, 1, 0)(1,\ 1,\ 1,\ 1,\ 1,\ 0) 和 (1, 1, 1, 2, 0, 0)(1,\ 1,\ 1,\ 2,\ 0,\ 0) 满足条件。(1, 1, 1, 2, 0, 0)(1,\ 1,\ 1,\ 2,\ 0,\ 0) 是 Polish,可以如下验证:

  • 如题目所述,(0)(0) 是 Polish;
  • (2, 0, 0)(2,\ 0,\ 0) 是 Polish,因为它等于 (2)(2) 与两个 Polish 序列 (0)(0) 和 (0)(0) 按顺序连接;
  • (1, 2, 0, 0)(1,\ 2,\ 0,\ 0) 是 Polish,因为它等于 (1)(1) 与一个 Polish 序列 (2, 0, 0)(2,\ 0,\ 0) 按顺序连接;
  • (1, 1, 2, 0, 0)(1,\ 1,\ 2,\ 0,\ 0) 是 Polish,因为它等于 (1)(1) 与一个 Polish 序列 (1, 2, 0, 0)(1,\ 2,\ 0,\ 0) 按顺序连接;
  • (1, 1, 1, 2, 0, 0)(1,\ 1,\ 1,\ 2,\ 0,\ 0) 是 Polish,因为它等于 (1)(1) 与一个 Polish 序列 (1, 1, 2, 0, 0)(1,\ 1,\ 2,\ 0,\ 0) 按顺序连接。

由 ChatGPT 4.1 翻译

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

首页