luogu#P6688. 可重集

    ID: 10698 远端评测题 2000ms 500MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>2020线段树树状数组洛谷原创O2优化哈希HASH洛谷月赛

可重集

题目描述

给出一个长度为 nn 的非负整数序列 a1,a2,a3,,ana_1,a_2,a_3,\ldots, a_n,给出 qq 次操作,每次先给出一个参数 opop

  • op=0op=0,接下来给出 22 个参数 x,yx,y,把 axa_x 修改为 yy

  • op=1op=1,接下来给出 44 个参数 l1,r1,l2,r2 l_1,r_1,l_2,r_2(保证 r1l1=r2l2r_1-l_1=r_2-l_2),你需要判断区间 [l1,r1][l_1,r_1] 与区间 [l2,r2][l_2,r_2] 是否本质相同,如果本质相同输出 YES,否则输出 NO

本质相同的定义:令区间长度为 len\text{len} ,序列 p1plenp_{1}\dots p_{\text{len}}al1ar1a_{l_1}\dots a_{r_1} 升序排序后的结果,序列 q1qlenq_{1}\dots q_\text{len}al2ar2a_{l_2}\dots a_{r_2} 升序排序后的结果,存在一个整数 kk 使得满足 i,pi+k=qi\forall i,p_i+k=q_i

输入格式

第一行给出两个正整数 n,qn,q,表示序列长度及操作次数。

第二行 nn 个非负整数表示 a1,a2,a3,,ana_{1},a_2,a_3,\ldots,a_n

接下来 qq 行,每行为上述操作中的一种。

输出格式

对于 op=1op=1 的操作,输出两个区间是否本质相同,如果是输出 YES,否则输出 NO

12 6
1 1 4 5 1 4 2 2 5 2 3 3
1 1 3 7 9
1 2 3 5 6
1 1 3 2 4
0 7 1
1 1 4 2 5
1 5 7 8 10
YES
YES
NO
YES
YES

提示

  • Subtask1 (2525 pts):1n,q10001\leq n,q \leq 1000

  • Subtask2 (2525 pts):1n,q1051\leq n,q \leq 10^50ai,y1000\leq a_i,y\leq 100

  • Subtask3 (2525 pts):1n,q1051\leq n,q \leq 10^5

  • Subtask4 (2525 pts):无特殊限制。

你只有通过 subtask 中的所有测试点才能获得该 subtask 的分数。

对于所有数据满足:1n,q1061\leq n,q \leq 10^61xn1\leq x \leq n0ai,y1060\leq a_i,y \leq 10^6 。且对于所有 l,rl,r1lrn1\leq l\leq r\leq n