AT_agc037_f [AGC037F] Counting of Subarrays

题目描述

定义正整数序列 $S$ 属于**等级** $(k, l)$,当且仅当满足以下任一条件: - $S$ 的元素个数为 $1$,且该元素的值为 $k$。 - 存在属于等级 $(k-1, l)$ 的数列 $T_1, T_2, \ldots, T_m$($m \geq l$),将 $T_1, T_2, \ldots, T_m$ 按顺序连接后得到的数列与 $S$ 完全一致。 注意,当 $k=1$ 时,第二个条件没有意义,因此等级 $(1, l)$ 的正整数序列只能满足第一个条件。 给定正整数序列 $A_1, A_2, \ldots, A_N$ 和正整数 $L$。请计算满足下述条件的子序列 $A_i, A_{i+1}, \ldots, A_j$($1 \leq i \leq j \leq N$)的个数: - 存在某个正整数 $K$,使得数列 $A_i, A_{i+1}, \ldots, A_j$ 属于等级 $(K, L)$。

输入格式

输入从标准输入中按以下格式给出。 > $N$ $L$ $A_1$ $A_2$ $\ldots$ $A_N$

输出格式

输出满足条件的子序列的个数。

说明/提示

## 限制条件 - $1 \leq N \leq 2 \times 10^5$ - $2 \leq L \leq N$ - $1 \leq A_i \leq 10^9$ ## 样例说明 1 例如,数列 $(1,1,1)$ 和 $(2)$ 都属于等级 $(2,3)$,因此数列 $(2,1,1,1,1,1,1)$ 属于等级 $(3,3)$。 由 ChatGPT 4.1 翻译