给定一个长度为 n 的整数序列,求有多少个非空连续区间,其中不同数值的种类数不超过 k。
同一种数可以出现多次。例如,[2,2,5] 有 2 种不同的数。只要左端点或右端点不同,就算不同区间。
第一行输入两个整数 n,k。第二行输入 n 个整数 a_1,a_2,\ldots,a_n。
输出一个整数,表示满足条件的区间数量。
5 2 1 2 1 3 3
11
12 2 1 1 2 3 2 2 4 1 4 4 3 2
32
30 3 5 2 5 3 2 7 7 3 5 2 8 8 2 5 3 7 2 2 5 8 3 3 7 5 2 8 7 3 2 5
106
按左端点分类,合法区间如下:
合计 3+2+3+2+1=11 个。
对于所有测试数据,保证:1\le n\le10^5,1\le k\le n,1\le a_i\le10^6。
本题共 20 个测试点,每个测试点 5 分,各测试点独立计分。
| 测试点编号 | n\le | 特殊性质 |
|---|---|---|
| 1 | 1 | 无 |
| 2 \sim 3 | 10 | 无 |
| 4 \sim 7 | 10^3 | 无 |
| 8 \sim 11 | 10^5 | A |
| 12 \sim 20 | 10^5 | 无 |
特殊性质 A:k=1。