CF2149E Hidden Knowledge of the Ancients
题目描述
在 Deepwoken 的世界中,存在着一件古老的神器——无限知识石板,上面刻有一串由 $n$ 个神秘符号组成的序列(每个符号为一个整数)。
传说,只有找到所有的神圣碎片,才能揭示神器真正的力量——神圣碎片指的是石板上所有正好包含 $k$ 个不同数字的连续片段,且它们的长度要在 $l$ 到 $r$ 之间(包含 $l$ 和 $r$)。
形式化地说:给定长度为 $n$ 的序列 $a$,以及整数 $k, l, r$,你需要找出所有满足以下条件的边界 $b$ 与 $c$ 的数目:
- $1 \leq b \leq c \leq n$;
- 元素 $a_b, a_{b+1},\dots,a_c$ 恰好包含 $k$ 个不同的数字;
- $l \leq c-b+1 \leq r$。
输入格式
每个测试用例包含多组数据。
第一行包含一个整数 $t$($1 \leq t \leq 10^4$)——表示测试用例的数量。
接下来依次描述每组测试用例。
每组测试用例第一行包含四个整数 $n, k, l, r$($1 \leq k \leq n \leq 2 \cdot 10^5, 1 \leq l \leq r \leq n$)。
第二行包含 $n$ 个整数 $a_i$($1 \leq a_i \leq 10^9$)——神秘符号序列。
保证所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。
输出格式
对于每组测试用例,输出一个整数,占一行——满足条件的连续子数组的数量。
说明/提示
在第一个测试用例中 $a=[5]$,只有一个子数组 $[5]$,长度为 $1$,恰好包含 $1$ 个不同的数字。
在第四个测试用例 $a=[7,7,7,7]$ 中,任意子数组都只有 $1$ 个不同的数字。可能的子数组范围如下:
- 长度为 $1$: $[1,1]$、$[2,2]$、$[3,3]$、$[4,4]$。
- 长度为 $2$: $[1,2]$、$[2,3]$、$[3,4]$。
共 $7$ 个。
在第五个测试用例 $a=[1,2,1,2,3,2,1]$ 中:
- 长度为 $2$:所有子数组都只包含 $2$ 个不同的数字。
- 长度为 $3$: $[3,5]$、$[5,7]$。
- 长度为 $4$: $[2,5]$、$[3,6]$、$[4,7]$。
共 $5$ 个。
由 ChatGPT 5 翻译