CF1102E Monotonic Renumeration

题目描述

给定一个包含 $n$ 个整数的数组 $a$。我们将数组 $a$ 的单调重编号定义为一个包含 $n$ 个整数的数组 $b$,满足以下所有条件: - $b_1 = 0$; - 对于任意 $1 \le i, j \le n$,如果 $a_i = a_j$,则 $b_i = b_j$(注意,如果 $a_i \ne a_j$,也可能有 $b_i = b_j$); - 对于每个 $i \in [1, n-1]$,要么 $b_i = b_{i+1}$,要么 $b_i + 1 = b_{i+1}$。 例如,如果 $a = [1, 2, 1, 2, 3]$,则 $b = [0, 0, 0, 0, 0]$ 和 $b = [0, 0, 0, 0, 1]$ 都是 $a$ 的合法单调重编号。 你的任务是计算 $a$ 的不同单调重编号的数量。由于答案可能很大,请输出对 $998244353$ 取模的结果。

输入格式

第一行包含一个整数 $n$($2 \le n \le 2 \cdot 10^5$),表示数组 $a$ 的元素个数。 第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le 10^9$)。

输出格式

输出一个整数,表示 $a$ 的不同单调重编号的数量,对 $998244353$ 取模。

说明/提示

由 ChatGPT 4.1 翻译