小 O 与排列
题目背景
小 O 是一个喜爱数学的高中生,他现在在一个与排列有关的问题上陷入了迷茫之中,快来帮帮他!
**注意输入格式有修改,第二行与第三行被调换了。(以现在的题面为准)**
题目描述
小 O 有一个长为 $n$ 的排列 $p$,他的好朋友 $\texttt{euei}$ 有一个长为 $n$,值域是 $[1, n]$ 的序列 $a$。
有一天,小 O 忽然想知道是否存在数对 $i, j$,满足 $l \le i, j \le r$,且 $p_{a_i} = a_j$,他轻松地解决了这个问题。但是 $\texttt{euei}$ 有些时候会修改这个序列某个位置的值,还会对多对不同的 $l, r$ 询问上面的问题,这下小 O 就不会了。
聪明的你能帮助小 O 解决这个问题吗?
输入输出格式
输入格式
第一行两个正整数 $n, m$,其中 $m$ 表示修改和询问数之和。
第二行 $n$ 个正整数 $p_1, p_2, \cdots, p_n$,表示排列 $p$。
第三行 $n$ 个正整数 $a_1, a_2, \cdots, a_n$,表示初始的序列 $a$。
接下来 $m$ 行,每行三个正整数,为以下两种格式之一:
- `1 i v`,表示将 $a_i$ 修改为 $v$。
- `2 l r`,表示询问是否存在数对 $i, j$,满足 $l \le i, j \le r$,且 $p_{a_i} = a_j$。
输出格式
对于每个询问,如果存在,那么输出 `Yes`,否则输出 `No`。
输入输出样例
输入样例 #1
3 4
3 1 2
2 2 1
2 2 3
1 2 3
1 3 3
2 2 3
输出样例 #1
Yes
No
说明
**提示**
本题读入量较大,请使用高效的读入方式。
**样例解释**
对于第一组询问,数对 $2, 3$ 满足要求。
对于第二组询问,没有数对满足要求。
**数据范围**
本题共有 $5$ 个子任务,你需要通过一个子任务内的所有测试点才能取得这个子任务的分数。
对于所有数据,$1 \le n,m \le 5\times 10^5$,$1 \le a_i, i, v, l, r \le n$ ,$p_i \neq i$。
| # | 分数 | $n, m$ | 特殊性质 | 时间限制 |
| ---- | ---- | ---------------- | ------------------------------- | ----------- |
| 1 | 7 | $\leqslant 300$ | | $\text{1s}$ |
| 2 | 23 | $\leqslant 2000$ | | $\text{1s}$ |
| 3 | 15 | | 没有`1`操作 | $\text{3s}$ |
| 4 | 15 | | 每次询问时序列 $a$ 都是一个排列 | $\text{3s}$ |
| 5 | 40 | | | $\text{3s}$ |
表格中留空表示该项无特殊限制。