题目传送门:【POJ 2104】
题目大意:本题包含多组数据。每组数据都会给你一个数组,包含 n 个数;一共有 m 个询问,每次询问输入三个整数 L , R , k,表示求区间 [ L , R ] 以内第 k 小的数。( 1 ≤ n ≤ 100 000 , 1 ≤ m ≤ 5 000 , 数组中每个数的绝对值 ≤ 109 )
知识讲解:
在讲这道题之前,我想先讲讲本人对主席树的一些看法。
主席树,又被称作“可持久化线段树”,是 OI 上一个相当重要的数据结构。它可以解决例如查找历史版本的区间值,区间第 k 大/小值,以及区间内不同数的个数,等等。
既然要实现可持久化,那么在建树过程中,我们就需要将历史信息给记录下来。首先,我们最容易想到的就是:每发生一次修改过程,就建立一棵新树。但是,建立一棵新树的消耗非常大,如果要建立 m 棵新树,复杂度将为