题意:
有一个长度为 $ n $ 的序列 $ a $ ,给定 $ q $ 次操作,每次操作为以下两种之一:
$ 1 $ . $ 1 $ $ p $ $ x $: $ a_p = x $
$ 2 $ . $ 2 $ $ x $: $ a_i $ $ = $ $ max $$($$ a_i $ ,$ x $$)$ $ (1 \le i \le n) $
求经过 $ q $ 次操作后的序列 $ a $ 。
思路:
$ a_i $ 的最终值只受以下两个操作影响:
$ 1 $ . 最后一次单点修改 $ a_i $ 的值
$ 2 $ . 最后一次单点修改 $ a_i $ 的值之后的区间修改的最大值
设 $ time_i $ 表示 $ a_i $ 最后一次单点修改的时间戳。
设 $ maxv_i $ 表示操作区间 $ [i,q] $ 的区间修改的最大值, $ for \space i : q - 1 \to 1 $ 倒序递推 $ maxv_i = max(maxv_i,maxv_{i + 1}) $ 。
因此,$ for \space i : 1 \to n $ 遍历序列 $ a $ , $ a_i = max(a_i,maxv_{time_i}) $ 。
标签:单点,题解,CF1198B,maxv,修改,State,max,操作 From: https://www.cnblogs.com/ShawyYum/p/17875741.html