#P15652. [Bulgarian2026训练营]Warehouse仓库

    ID: 14864 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 7 上传者: 标签>数据结构分块可持久化线段树CF2300

[Bulgarian2026训练营]Warehouse仓库

题目描述

一个大仓库中有 nn 个箱子排成一列,编号为 11nn。每个箱子有一个标签 aia_i,表示其中货物的种类。

仓库检查员会进行 qq 次检查。每次检查给出一个区间 [l,r][l,r]

对于一个标签值 xx,如果在区间 [l,r][l,r] 中,标签为 xx 的箱子恰好有 xx,则称这种箱子在该区间中是“正确摆放”的。

例如,当 x=3x=3 时,在当前区间中必须恰好有 33 个标签为 33 的箱子。

注意:答案统计的是满足条件的不同标签值 xx 的个数。

请你对每次检查,求出区间内正确摆放的标签种类数。

输入格式

第一行包含三个整数 n,q,cn,q,c,分别表示箱子数量、检查次数和询问编码参数。

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n,表示每个箱子的标签。

接下来 qq 行,每行包含两个整数 l,rl,r

如果 c=0c=0,则输入中的 l,rl,r 就是询问区间的真实边界。

如果 c=1c=1,询问被编码。设第 ii 次询问的答案为 ansians_i,并令 ans0=0ans_0=0。对于第 ii 次询问,真实边界为

$$l = l \oplus ans_{i-1},\qquad r = r \oplus ans_{i-1},$$

其中 \oplus 表示按位异或。保证解码后有 1lrn1\le l\le r\le n

输出格式

对于每个询问,输出一行一个整数,表示区间 [l,r][l,r] 中满足“出现次数恰好等于自身标签值”的不同标签数量。

数据范围

  • 1n,q1000001 \le n,q \le 100000
  • 1ai1061 \le a_i \le 10^6
  • c{0,1}c\in\{0,1\}

子任务

子任务 分值 依赖子任务 n,qn,q cc 额外限制
1 5 - 1000\le 1000 0 -
2 20 1 20000\le 20000
3 10 - 100000\le 100000 所有询问满足 l=1l=1
4 15 所有 ai100a_i\le 100
5 20 1-4 -
6 30 1-5 0 或 1

只有通过某个子任务及其所有依赖子任务中的全部测试,才能获得该子任务分数。

样例

样例 1

7 3 0
1 2 2 3 3 3 2
1 7
1 3
4 6
2
2
1

样例 2

5 2 0
1 1 1 1 1
1 5
2 4
0
0

样例说明

对于样例 1 的询问 [1,7][1,7]

  • 标签 11 出现 11 次,满足条件;
  • 标签 22 出现 33 次,不满足条件;
  • 标签 33 出现 33 次,满足条件。

所以答案为 22