CF1913D Array Collapse

题目描述

给定一个数组 $[p_1, p_2, \dots, p_n]$,其中所有元素互不相同。 你可以对该数组进行若干次(也可以不进行)如下操作:每次操作,你可以选择 $p$ 的一个连续子段,并移除该子段中除最小元素之外的所有元素。例如,如果 $p = [3, 1, 4, 7, 5, 2, 6]$,你选择第 $3$ 个元素到第 $6$ 个元素的子段,操作后数组变为 $[3, 1, 2, 6]$。 如果一个数组 $a$ 可以通过若干次上述操作从 $p$ 得到,则称 $a$ 是可达数组。请计算可达数组的个数,并对 $998244353$ 取模后输出。

输入格式

输入的第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。 每个测试用例包含两行。第一行包含一个整数 $n$($1 \le n \le 3 \times 10^5$)。第二行包含 $n$ 个互不相同的整数 $p_1, p_2, \dots, p_n$($1 \le p_i \le 10^9$)。 输入的额外限制:所有测试用例中 $n$ 的总和不超过 $3 \times 10^5$。

输出格式

对于每个测试用例,输出一个整数,表示可达数组的个数,对 $998244353$ 取模。

说明/提示

由 ChatGPT 4.1 翻译