P1044异色飞羽beads

时间限制 3000 ms内存限制 512 MiB通过率 —
显示算法标签树状数组 · 离线算法 · 不同数计数

【题目背景】

道路规划完成后,主营地开始与各处聚落定期通信。每条传信路线都使用一种固定颜色作为标记,信使飞鸟抵达主营地时,也会带回具有对应颜色的羽毛。

近来送达的消息越来越多,纸面记录中难免出现重叠和遗漏。tfbz 决定保留这些羽毛,并按照飞鸟抵达的顺序将它们整理起来,以便随时还原某一段时间内真正启用过的传信路线。

【题目描述】

每只信使飞鸟抵达主营地时,tfbz 都会取下一根用于标记路线的羽毛。不同路线采用不同颜色的羽毛,同一条路线留下的羽毛颜色相同。同一条路线可能在一段时间内多次送达消息,因此相同颜色也可能在记录中反复出现。

经过一段时间,tfbz 一共收集了 nn 根羽毛,并按照抵达顺序将它们排成一列。第 ii 根羽毛的颜色编号为 aia_i。这列羽毛的顺序不会被改变,因为其中一段连续的位置恰好对应一段连续的通信记录。

SinCircle 从传信记录中选出了 qq 个时间段,希望确认这些时间段内分别有多少条路线送达过消息。第 ii 次询问给出两个整数 li,ril_i,r_i,表示从第 lil_i 根羽毛被收集开始,到第 rir_i 根羽毛被收集结束的完整记录。

对于每次询问,你需要统计第 lil_i 根至第 rir_i 根羽毛中出现了多少种不同的颜色。若某种颜色在这段记录中出现过,就说明对应路线曾经送达消息。同一种颜色即使出现多次,也只会被统计一次。

请你按照询问顺序依次输出答案,帮助 tfbz 完成这份传信记录。

【输入格式】

从文件 beads.in\textbf{\textit{beads.in}} 中读入数据。

本题包含多组测试数据。

输入的第一行包含两个非负整数 c,Tc,T,分别表示测试点编号与测试数据的组数。c=0c=0 表示该测试点为样例。

对于每组测试数据:

第一行包含两个正整数 n,qn,q,分别表示羽毛数量与询问数量。

第二行包含 nn 个正整数 a1,a2,,ana_1,a_2,\ldots,a_n,依次表示每根羽毛的颜色编号。

接下来 qq 行,每行包含两个正整数 li,ril_i,r_i,表示一次询问。

【输出格式】

输出到文件 beads.out\textbf{\textit{beads.out}} 中。

对于每次询问输出一行一个整数,表示对应区间内不同颜色的数量。

【样例 1 输入】

0 25 52 1 3 2 13 32 32 41 23 56 41 1 2 3 2 11 62 53 44 4

【样例 1 输出】

123233321

【说明/提示】

【样例 1 解释】

第一组测试数据的第三次询问包含颜色 1,2,31,2,3,因此答案为 33

第二组测试数据的第一次询问覆盖全部 66 根羽毛,其中出现了颜色 1,2,31,2,3,因此答案为 33。第四次询问只包含一根羽毛,因此答案为 11

【样例 2】

见选手目录下的 beads/beads2.in\textbf{\textit{beads/beads2.in}}beads/beads2.ans\textbf{\textit{beads/beads2.ans}}

该组样例符合测试点 151\sim 5 的数据范围。

【样例 3】

见选手目录下的 beads/beads3.in\textbf{\textit{beads/beads3.in}}beads/beads3.ans\textbf{\textit{beads/beads3.ans}}

该组样例符合测试点 6106\sim 10 的数据范围。

【样例 4】

见选手目录下的 beads/beads4.in\textbf{\textit{beads/beads4.in}}beads/beads4.ans\textbf{\textit{beads/beads4.ans}}

该组样例符合测试点 111411\sim 14 的数据范围。

【样例 5】

见选手目录下的 beads/beads5.in\textbf{\textit{beads/beads5.in}}beads/beads5.ans\textbf{\textit{beads/beads5.ans}}

该组样例符合测试点 151915\sim 19 的数据范围。

【样例 6】

见选手目录下的 beads/beads6.in\textbf{\textit{beads/beads6.in}}beads/beads6.ans\textbf{\textit{beads/beads6.ans}}

该组样例符合测试点 202520\sim 25 的数据范围。

【数据范围】

对于 100%100\% 的数据,保证 1T201\leq T\leq 201n,q1061\leq n,q\leq 10^6,单个测试点内 n106\sum n\leq 10^6q106\sum q\leq 10^61ai1061\leq a_i\leq 10^61lirin1\leq l_i\leq r_i\leq n

测试点编号n,qn,q特殊性质
151\sim 5200\leq 200
6106\sim 105×103\leq 5\times 10^3
111411\sim 14106\leq 10^6A
151915\sim 19106\leq 10^6B
202520\sim 25106\leq 10^6

特殊性质 A:保证每次询问均满足 li=1l_i=1

特殊性质 B:保证询问按照输入顺序满足 r1r2rqr_1\leq r_2\leq\cdots\leq r_q

【题解】

已公开 1 篇题解,官方题解会优先显示。

查看题解