Logo Wy Online Judge

WyOJ

题目描述

对于任意数组 b,云璃可以执行任意次以下操作:

  • 选择一个下标 i,把 bᵢ 改成她想要的任意整数 xx 不限于 [1, n])。

f(b) 为使 b存在一个长度至少为 k 的连续子数组所需的最少操作次数。

连续子数组:若存在从下标 i 开始、长度为 k 的子数组,满足对所有 i < j ≤ i+k−1 都有 bⱼ = bⱼ₋₁ + 1

云璃拿到一个长度为 n 的数组 a,并会提出 q 个询问。每个询问中,你需要输出:

$$\sum_{j=l+k-1}^{r} f([a_l, a_{l+1}, \dots, a_j])$$

输入格式

第一行包含一个整数 t1 ≤ t ≤ 10⁴)——测试数据的组数。

每组测试数据的第一行包含三个整数 n, k, q1 ≤ k ≤ n ≤ 2×10⁵1 ≤ q ≤ 2×10⁵)——数组长度、连续子数组长度、询问个数。

接下来一行包含 n 个整数 a₁, a₂, ..., aₙ1 ≤ aᵢ ≤ n)。

接下来 q 行,每行两个整数 l, r1 ≤ l ≤ r ≤ n,且保证 r ≥ l + k − 1)。

保证所有测试数据的 n 之和不超过 2×10⁵,所有测试数据的 q 之和不超过 2×10⁵

输出格式

对每个询问,在新的一行输出其答案。

样例

输入:

3
7 5 3
1 2 3 2 1 2 3
1 7
2 7
3 7
8 4 2
4 3 1 1 2 4 3 2
3 6
1 5
5 4 2
4 5 1 2 3
1 4
1 5

输出:

6
5
2
2
5
2
3

说明:第一组测试数据的第二个询问中:

  • f([2,3,2,1,2]) = 3,因为可以设 b₃=4, b₄=5, b₅=6,用 3 次操作得到一个长度为 5 的连续子数组;
  • f([2,3,2,1,2,3]) = 2,因为可以设 b₃=0, b₂=−1,用 2 次操作得到一个从位置 2 开始的长度为 5 的连续子数组。

该询问答案为 3 + 2 = 5

数据范围与子任务

子任务 分值 数据范围
1 20% 单个测试中 n, q ≤ 100
2 30% 单个测试中 r-l+1=k
3 20% 单个测试中 k ≤ 30
4 30% 单个测试中 ,r>k+l-1,n, q ≤ 2×10⁵
  • 对于 100% 的数据:1 ≤ t ≤ 10⁴1 ≤ k ≤ n ≤ 2×10⁵1 ≤ q ≤ 2×10⁵1 ≤ aᵢ ≤ n;所有数据 n 之和、q 之和均 ≤ 2×10⁵
  • 所有询问满足 r ≥ l + k − 1
题目信息
  • 难度 UKE
  • 控制组 group_default
  • 时间限制 1 s
  • 空间限制 256 MB
  • 数据大小 14.987 MB
提交统计
  • 提交数 17
  • 通过数 3
  • 通过率 17.6%