#P1903. 数颜色 / 维护队列(Counting Colors)

0
    ID: 8464 传统题 3000ms 512MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>P1903莫队算法带修莫队离线查询CSP-S

数颜色 / 维护队列(Counting Colors)

数颜色 / 维护队列(Counting Colors)

题目描述

墨墨购买了一套 NN 支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问。墨墨会向你发布如下指令:

  1. Q L RQ\ L\ R 代表询问你从第 LL 支画笔到第 RR 支画笔中共有几种不同颜色的画笔。

  2. R P CR\ P\ C 把第 PP 支画笔替换为颜色 CC。

为了满足墨墨的要求,你知道你需要干什么了吗?

输入格式

第 11 行两个整数 NN,MM,分别代表初始画笔的数量以及墨墨会做的事情的个数。

第 22 行 NN 个整数,分别代表初始画笔排中第 ii 支画笔的颜色。

第 33 行到第 2+M2+M 行,每行分别代表墨墨会做的一件事情,格式见题干部分。

输出格式

对于每一个 Query 的询问,你需要在对应的行中给出一个数字,代表第 LL 支画笔到第 RR 支画笔中共有几种不同颜色的画笔。

样例输入 #1

6 5
1 2 3 4 5 5
Q 1 4
Q 2 6
R 1 2
Q 1 4
Q 2 6

样例输出 #1

4
4
3
4

数据范围

对于 30%30\% 的数据,n,m≤10000n,m \leq 10000;

对于 60%60\% 的数据,n,m≤50000n,m \leq 50000;

对于所有数据,n,m≤133333n,m \leq 133333。

所有的输入数据中出现的所有整数均大于等于 11 且不超过 10610^6。

本题可能轻微卡常数。

来源:bzoj2120

知识点与难度

本题涉及的知识点从属于 CSP-S,难度(CF Rating):2000。


测试点分布

Subtask 分值 测试点编号 说明
0 10 1 样例
1 20 2~7 小规模 n,m≤10000 / 特殊: 零修改退化静态数颜色 / 单点区间 L=R
2 15 8~11 Hack: 颜色值遍布 1~10^6 边界 / Hack: 同一位置反复修改颜色再回退校验带修莫队时间戳
3 30 12~20 满规模 n,m=133333 带修莫队 O(n^{5/3}) 压力测试
4 25 21~25 随机修改与查询比例回归测试

出处:原题链接