#P12485. [集训队互测 2024] PM 大师

    ID: 14071 远端评测题 8000ms 512MiB 尝试: 0 已通过: 0 显示难度NOI/NOI+/CTS 上传者: 标签>线段树集训队互测2024

[集训队互测 2024] PM 大师

背景

小 C 正在堆尸解隐藏曲的时候,他的好朋友小 A 随手就 Pure Memory 了。

小 C 也想成为像小 A 一样的 PM 大师,所以他需要你解决一个关于 PM(Prefix Mex)的问题。

题目描述

注意,本题对 mex⁡\operatorname{mex} 的定义与一般的定义不同。

对于可重集 SS 定义 mex⁡(S)\operatorname{mex}(S) 表示最小的 正整数 xx 满足 x∉Sx\notin S。

对于给定的数组 a1,a2,…,ana_1,a_2,\dots,a_n,保证 −1≤ai≤n-1\le a_i\le n,使用以下的方式生成数组 b1,b2,…,bnb_1,b_2,\dots,b_n:

$$b_i=\begin{cases}a_i&a_i\ne 0\\ \operatorname{mex}(\{b_1,b_2,\dots,b_{i-1}\})&a_i=0\end{cases}$$

现在给定长度为 nn 的数组 a1,a2,…,ana_1,a_2,\dots,a_n,保证初始时 ai∈{−1,0}a_i\in \{-1,0\} 且数组 aa 不全为 00。

给定 qq 次操作,每次操作给定三个整数 x,k,yx,k,y,保证 1≤x,y≤n1\le x,y\le n,ax≠0a_x\ne 0,−1≤k≤n-1\le k\le n 且 k≠0k\ne 0。表示先将 axa_x 修改为 kk,然后你需要求出使用当前的数组 aa 所生成的数组 bb 中 byb_y 的值。

注意,任意时刻为 00 的 aia_i 不会被修改,不为 00 的 aia_i 不会被修改为 00。

输入格式

第一行两个正整数 n,qn,q。

第二行 nn 个整数,描述 a1,a2,…,ana_1,a_2,\dots,a_n,保证初始时 ai∈{−1,0}a_i\in \{-1,0\} 且数组 aa 不全为 00。

接下来 qq 行,每行 33 个整数 x,k,yx,k,y,描述一次操作。

输出格式

共 qq 行,第 ii 行输出一个整数表示使用第 ii 次修改操作后的数组 aa 所生成的数组 bb 中 byb_y 的值。

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

提示

样例 2: 见下发文件,其满足子任务 11 的限制。

数据范围

对于 100%100\% 的数据,保证 1≤n,q≤1061\le n,q\le 10^6,ai∈{−1,0}a_i\in \{-1,0\},1≤x,y≤n1\le x,y\le n,ax≠0a_x\ne 0,−1≤k≤n-1\le k\le n 且 k≠0k\ne 0。保证数组 aa 不全为 00。

子任务编号 特殊性质 分值
11 n,q≤104n,q\le 10^4 1010
22 初始时序列 aa 单调不降
33 k≤100k\le 100
44 序列 aa 中 00 的数量 ≤100\le 100
55 每次修改前 ax=−1a_x=-1 3030
66 无