#CSES2428. 子数组的不同值

    ID: 201 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: 3 上传者: 标签>双指针滑动窗口CSES排序和搜索下标计数

子数组的不同值

题目描述

给定一个由 nn 个整数构成的数组,任务是计算数组中包含至多 kk 个不同值的子数组的个数。

本题中子数组定义为:任意给定一个数组下标 l,rl, r1lrn1 \le l \le r \le n),得到的区间 [l,r][l, r] 中的数组元素 al,al+1,,ara_l, a_{l+1}, \cdots, a_r。即可以理解成连续子序列。

输入格式

第一行输入两个整数 nnkk,分别代表数组的大小和最多允许的不同值的个数。

第二行输入 nn 个整数 x1,x2,,xnx_1, x_2, \ldots, x_n,代表数组的值。

输出格式

输出一个整数,表示包含至多 kk 个不同值的子数组的个数。

样例

5 2
1 2 3 1 1
10

数据范围

  • 1kn2×1051 \le k \le n \le 2 \times 10^5
  • 1xi1091 \le x_i \le 10^9