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 翻译