luogu#P5604. 小 O 与排列

小 O 与排列

题目背景

小 O 是一个喜爱数学的高中生,他现在在一个与排列有关的问题上陷入了迷茫之中,快来帮帮他!

注意输入格式有修改,第二行与第三行被调换了。(以现在的题面为准)

题目描述

小 O 有一个长为 nn 的排列 pp,他的好朋友 euei\texttt{euei} 有一个长为 nn,值域是 [1,n][1, n] 的序列 aa

有一天,小 O 忽然想知道是否存在数对 i,ji, j,满足 li,jrl \le i, j \le r,且 pai=ajp_{a_i} = a_j,他轻松地解决了这个问题。但是 euei\texttt{euei} 有些时候会修改这个序列某个位置的值,还会对多对不同的 l,rl, r 询问上面的问题,这下小 O 就不会了。

聪明的你能帮助小 O 解决这个问题吗?

输入格式

第一行两个正整数 n,mn, m,其中 mm 表示修改和询问数之和。

第二行 nn 个正整数 p1,p2,,pnp_1, p_2, \cdots, p_n,表示排列 pp

第三行 nn 个正整数 a1,a2,,ana_1, a_2, \cdots, a_n,表示初始的序列 aa

接下来 mm 行,每行三个正整数,为以下两种格式之一:

  • 1 i v,表示将 aia_i 修改为 vv
  • 2 l r,表示询问是否存在数对 i,ji, j,满足 li,jrl \le i, j \le r,且 pai=ajp_{a_i} = a_j

输出格式

对于每个询问,如果存在,那么输出 Yes,否则输出 No

3 4
3 1 2
2 2 1
2 2 3
1 2 3
1 3 3
2 2 3
Yes
No

提示

提示

本题读入量较大,请使用高效的读入方式。

样例解释

对于第一组询问,数对 2,32, 3 满足要求。

对于第二组询问,没有数对满足要求。

数据范围

本题共有 55 个子任务,你需要通过一个子任务内的所有测试点才能取得这个子任务的分数。

对于所有数据,1n,m5×1051 \le n,m \le 5\times 10^51ai,i,v,l,rn1 \le a_i, i, v, l, r \le npiip_i \neq i

# 分数 n,mn, m 特殊性质 时间限制
1 7 300\leqslant 300 1s\text{1s}
2 23 2000\leqslant 2000
3 15 没有1操作 3s\text{3s}
4 每次询问时序列 aa 都是一个排列
5 40

表格中留空表示该项无特殊限制。