#CF650D. 滑索

    ID: 1476 传统题 3000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>2600Codeforces动态规划数据结构离线处理

滑索

滑索

  • 时间限制:3 秒
  • 内存限制:256 MiB

题目描述

给定长度为 nn 的序列 hh 和 mm 个彼此独立的假设。每个假设给出 a,ba,b,表示只在当前假设中把 hah_a 改成 bb。

对每个假设,求修改后序列的最长严格上升子序列长度。每次假设都从原序列开始,不会保留上一次修改。

输入格式

第一行两个整数 n,mn,m。

第二行 nn 个整数 h1,h2,…,hnh_1,h_2,\ldots,h_n。

接下来 mm 行,每行两个整数 a,ba,b。

输出格式

输出 mm 行,第 ii 行表示第 ii 个假设下的最长严格上升子序列长度。

样例输入 1

4 4
1 2 3 4
1 1
1 4
4 3
4 5

样例输出 1

4
3
3
4

样例输入 2

4 2
1 3 2 6
3 5
2 4

样例输出 2

4
3

数据范围

1≤n,m≤4×1051\le n,m\le4\times10^5,1≤hi,b≤1091\le h_i,b\le10^9,1≤a≤n1\le a\le n。

子任务编号 分值 特殊限制
1 20 n,m≤50n,m\le50
2 40 n,m≤3000n,m\le3000,且 nm≤3×106nm\le3\times10^6
3 无特殊限制