/ Vijos / 题库 /

持久化线段树[1]

持久化线段树[1]

时间限制:1秒  内存限制:256M


【题目描述】

  给定一个长度为 \(n\) 的整数数组 \(A[1]、A[2]、…、A[n](-10^9≤A[i]≤10^9)\),和 \(m\) 个操作:

  操作1:\(1\ i\ x\) 把 \(A[i]\) 修改成 \(x(-10^9≤x≤10^9)\);

  操作2:\(2\ t\ i\ j\) 查询前 \(t\) 次操作后的序列中连续子序列 \(A[i]..A[j]\) 中的最小值,\(t\) 从 0 开始计数。

【输入格式】

  第一行包含两个整数 \(n\) 和 \(m\),表示数组有 \(n\) 个元素,\(m\) 表示有 \(m\) 个查询操作;
  接下来的一行包含 \(n\) 个整数,第 \(i\) 个整数表示 \(A[i]\);
  再接下来的 \(m\) 行,每行一个操作,第 \(i\) 行的操作如果是2操作,则 \(0≤t<i\)。

【输出格式】

  按输入顺序输出操作2的结果。

【输入输出样例】

 Input

8 8
2 4 3 6 5 1 8 7
2 0 2 4
1 3 -1
2 2 2 4
1 6 3
2 4 4 8
2 0 4 8
1 3 4
2 7 1 7 

 Output

3
-1
3
1
2

【数据限制】

  对于 \(100\%\) 的数据,\(0<n,m≤200000\)

【来源】

  Mr.he**

信息

ID
2574
难度
9
分类
数据结构 | 线段树 点击显示
标签
(无)
递交数
11
已通过
2
通过率
18%
被复制
2
上传者