题目名称 4332. 动态第k小的数
输入输出 rank.in/out
难度等级 ★★★☆
时间限制 2000 ms (2 s)
内存限制 512 MiB
测试数据 10
题目来源 Gravatarsyzhaoss 于2026-03-06加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:1, 提交:1, 通过率:100%
Gravatarsyzhaoss 100 5.244 s 80.83 MiB C++
关于 动态第k小的数 的近10条评论(全部评论)

4332. 动态第k小的数

★★★☆   输入文件:rank.in   输出文件:rank.out   简单对比
时间限制:2 s   内存限制:512 MiB

【题目描述】

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

Q l r k 表示查询下标在区间 $[l,r]$ 中的第 $k$ 小的数;

C x y 表示将 $a_x$ 改为 $y$。

【输入格式】

第一行两个正整数 $n,m$,表示序列长度与操作个数。  

第二行 $n$ 个整数,表示 $a_1,a_2 \dots a_n$。  

接下来 $m$ 行,每行表示一个操作,都为上述两种中的一个。

【输出格式】

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

【样例输入】

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

【样例输出】

3
6

【数据范围】

对于 $10\%$ 的数据,$1\le n,m \le 100$;  

对于 $20\%$ 的数据,$1\le n,m \le 1000$;  

对于 $50\%$ 的数据,$1\le n,m \le 10^4$;    

对于 $100\%$ 的数据,$1\le n,m \le 10^5$,$1 \le l \le r \le n$,$1 \le k \le r-l+1$,$1\le x \le n$,$0 \le a_i,y \le 10^9$。