最新公告
  • 欢迎您光临信息学奥赛网,一个优质的信息学编程题库和信息学编程学习资源专业网站。欢迎加入VIP
  • 【模板】可持久化线段树 2

    正文概述 陈老师   2026-01-20 15:15:45  

    题目背景

    这是非常经典的可持久化权值线段树入门题 —— 静态区间第 kk 小。数据已加强,需使用可持久化权值线段树解决,同时注意常数优化。

    题目描述

    给定由 nn 个整数构成的序列 aa,对于指定闭区间 [l,r][l, r],查询该区间内的第 kk 小值。

    输入格式

    1. 第一行:两个整数 nn(序列长度)和 mm(查询个数)。

    2. 第二行:nn 个整数,表示序列的第 ii 个元素 aia_i

    3. 接下来 mm 行:每行三个整数 l,r,kl, r, k,表示查询区间 [l,r][l, r] 内的第 kk 小值。

    输出格式

    对于每次查询,输出一行一个整数,表示该区间第 kk 小值。

    样例

    5 5
    25957 6405 15770 26287 26465
    2 2 1
    3 4 1
    4 5 1
    1 2 2
    4 4 1
    
    6405
    15770
    26287
    25957
    26287
    

    提示

    样例1解释

    序列长度 n=5n = 5,数列为 {25957,6405,15770,26287,26465}\{25957, 6405, 15770, 26287, 26465\}

    • 第一次查询 [2,2][2, 2],第 1 小值为 64056405

    • 第二次查询 [3,4][3, 4],第 1 小值为 1577015770

    • 第三次查询 [4,5][4, 5],第 1 小值为 2628726287

    • 第四次查询 [1,2][1, 2],第 2 小值为 2595725957

    • 第五次查询 [4,4][4, 4],第 1 小值为 2628726287

    数据范围

    • 对于20% 数据:1n,m101 \leq n, m \leq 10

    • 对于50% 数据:1n,m1031 \leq n, m \leq 10^3

    • 对于80% 数据:1n,m1051 \leq n, m \leq 10^5

    • 对于100% 数据:1n,m2×1051 \leq n, m \leq 2\times10^50ai1090 \leq a_i \leq 10^91lrn1 \leq l \leq r \leq n1krl+11 \leq k \leq r - l + 1

    信息学奥赛网,一个优质的信息学奥赛学习资源平台!
    信息学奥赛网 » 【模板】可持久化线段树 2