CF650D Zip-line

题目描述

给定一个长度为 $n$ 的序列 $h_1,h_2,h_3,\dots,h_n$ 以及 $m$ 个操作,每个操作形如 `a b`,表示将序列中第 $a$ 个数改为 $b$。 对于每个操作,求出序列修改后的最长严格上升子序列长度。 **注意:每个操作之间彼此独立。即每次操作未进行时的序列是输入时的原序列,而不是上一次操作后得到的序列。**

输入格式

第一行输入两个数 $n$ 和 $m$。 第二行输入 $n$ 个数,表示原序列。 接下来 $m$ 行,每行输入两个数 `a b` 意义如上所述。

输出格式

共 $m$ 行,每行一个数,为当前操作之后的最长严格上升子序列的长度。

说明/提示

$1\leqslant n, m \leqslant 4\times 10^5$。 每一次操作的 $a$ 参数满足 $1 \leqslant a \leqslant n$,$b$ 参数满足 $1 \leqslant b \leqslant 10^9$,$h$ 序列中的每一个 $h_i$ 满足 $1 \leqslant h_i \leqslant 10^9$。