AT_arc186_d.[ARC186D] Polish Mania
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
非空非负整数序列 (V1, V2, …, VM) 被称为 Polish,其递归定义如下:
- 存在 V1 个 Polish 序列 W1, W2, …, WV1,使得将序列 (V1), W1, W2, …, WV1 按顺序连接后,恰好得到序列 (V1, V2, …, VM)。
特别地,序列 (0) 是 Polish。
给定一个长度为 N 的非负整数序列 (A1, A2, …, AN)。请你求出,长度为 N、字典序不大于 (A1, A2, …, AN) 的 Polish 序列的个数,对 998244353 取模。
关于序列的字典序:设 S=(S1,S2,…,S∣S∣),T=(T1,T2,…,T∣T∣),则 S 的字典序小于 T,当且仅当满足以下两条之一(其中 ∣S∣, ∣T∣ 分别为 S,T 的长度):
- ∣S∣<∣T∣ 且 (S1,S2,…,S∣S∣)=(T1,T2,…,T∣S∣)。
- 存在整数 1≤i≤min{∣S∣, ∣T∣},使得以下两点同时成立:
- (S1,S2,…,Si−1)=(T1,T2,…,Ti−1);
- Si 小于 Ti(按数值比较)。
输入格式
输入以如下格式从标准输入读入:
N A1 A2 … AN
输出格式
请输出满足条件的序列个数,对 998244353 取模。
输入输出样例
输入#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×105
- 0≤Ai<N
- 输入均为整数
样例解释 1
(1, 1, 1, 1, 1, 0) 和 (1, 1, 1, 2, 0, 0) 满足条件。(1, 1, 1, 2, 0, 0) 是 Polish,可以如下验证:
- 如题目所述,(0) 是 Polish;
- (2, 0, 0) 是 Polish,因为它等于 (2) 与两个 Polish 序列 (0) 和 (0) 按顺序连接;
- (1, 2, 0, 0) 是 Polish,因为它等于 (1) 与一个 Polish 序列 (2, 0, 0) 按顺序连接;
- (1, 1, 2, 0, 0) 是 Polish,因为它等于 (1) 与一个 Polish 序列 (1, 2, 0, 0) 按顺序连接;
- (1, 1, 1, 2, 0, 0) 是 Polish,因为它等于 (1) 与一个 Polish 序列 (1, 1, 2, 0, 0) 按顺序连接。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?