#HK4170. 「CCO 2024」Heavy Light Decomposition

「CCO 2024」Heavy Light Decomposition

题目描述

译自 CCO 2024 Day2 T2「Heavy Light Decomposition

在一个只包含正整数的数组中,如果一个数字在数组里出现多次,我们就称它为「重」元素,否则为「轻」元素。

好的数组是指数组里的数字交替出现「轻」元素和「重」元素。

给你一个数组 a1,,aNa_{1}, \ldots, a_{N},请计算把它划分成若干个连续的子数组,使得每个子数组本身也都是好的数组的方案数。由于答案可能很大,请将最终结果对 10000031000003 取模输出。

输入格式

第一行包含一个正整数 NN,表示数组的长度。

第二行包含 NN 个正整数 a1,,aN (1aiN)a_{1}, \ldots, a_{N}\ (1 \leq a_{i} \leq N),表示数组中的元素。

输出格式

输出将数组划分成好的连续子数组的方案数,对 10000031000003 取模后的结果。

5
1 2 3 2 3
4

对于数组 [1,2,3,2,3][1,2,3,2,3],存在 4 种合法的划分方式:

  • [1],[2],[3],[2],[3][1],[2],[3],[2],[3]
  • [1],[2,3,2],[3][1],[2,3,2],[3]
  • [1],[2],[3,2,3][1],[2],[3,2,3]
  • [1,2,3,2],[3][1,2,3,2],[3]
5
1 2 1 3 1
6

数据范围与提示

子任务 分值 NN 的限制 额外限制
11 1212 2N500002 \leq N \leq 50000 对于所有的 iiai26a_{i}\leq 26
22 1616 2N50002 \leq N \leq 5000 无额外限制
33 2020 2N5×1052 \leq N \leq 5\times 10^5 每个序号为奇数的元素 aia_{i} 都必须等于 11
44 2424 数组里的每个数字最多出现两次
55 2828 无额外限制