#lg2617. C96C105【树状数组套权值线段树 | 可持久化|整体二分+树状数组】动态区间第k小[Dynamic Rankings]

    ID: 3566 传统题 3000ms 512MiB 尝试: 16 已通过: 6 难度: 8 上传者: 标签>莫队线段树平衡树树状数组树套树可持久化线段树分块整体二分提高+/省选−

C96C105【树状数组套权值线段树 | 可持久化|整体二分+树状数组】动态区间第k小[Dynamic Rankings]

0x40数据结构进阶(0x48 可持久化数据结构)例题2:P2617 Dynamic Rankings 0x40数据结构进阶(0x47 离线分治算法)例题3:Dynamic Rankings 原1442

P2617 Dynamic Rankings

题目描述

给定一个含有 nn 个数的序列 a1,a2ana_1,a_2 \dots a_n,需要支持两种操作:

  • Q l r k 表示查询下标在区间 [l,r][l,r] 中的第 kk 小的数
  • C x y 表示将 axa_x 改为 yy

输入格式

第一行两个正整数 n,mn,m,表示序列长度与操作个数。
第二行 nn 个整数,表示 a1,a2ana_1,a_2 \dots a_n
接下来 mm 行,每行表示一个操作,都为上述两种中的一个。

输出格式

对于每一次询问,输出一行一个整数表示答案。

输入输出样例 #1

输入 #1

5 3
3 2 1 4 7
Q 1 4 3
C 2 6
Q 2 5 3

输出 #1

3
6

说明/提示

【数据范围】

对于 10%10\% 的数据,1n,m1001\le n,m \le 100
对于 20%20\% 的数据,1n,m10001\le n,m \le 1000
对于 50%50\% 的数据,1n,m1041\le n,m \le 10^4
对于 100%100\% 的数据,1n,m1051\le n,m \le 10^51lrn1 \le l \le r \le n1krl+11 \le k \le r-l+11xn1\le x \le n0ai,y1090 \le a_i,y \le 10^9

请注意常数优化,但写法正常的整体二分和树套树都可以以大约 1000ms1000\text{ms} 每个点的时间通过。

本题数据为洛谷自造数据,使用CYaRon耗时5分钟完成数据制作。