Description
定义对序列 a=[a1,…,an] 的一次 何意味 操作为以下两者之一(任选一个操作):
- 选择一个 1≤i<n 满足 ai=ai+1,并删去 ai,ai+1;
- 选择任意整数 x,并在序列任意的相邻位置之间(或开头 / 结尾)插入连续两次 x。
给定序列 s1,…,sn 和 t1,…,tn,你需要处理三种操作共 m 次:
- 给出 l1,r1,l2,r2。你需要判断对子串 sl1,…,sr1 进行任意次 何意味 操作能否与子串 tl2,…,tr2 完全相同。
- 给出 p,x。将 sp 修改为 x。
- 给出 q,y。将 tq 修改为 y。
第一行,两个整数 n,m,分别表示序列长度和操作次数。
第二行,n 个整数 s1,…,sn。
第三行,n 个整数 t1,…,tn。
接下来 m 行,每行对应一次操作。每行的第一个整数 o∈{1,2,3} 代表与题目描述中相对应的操作编号:
- 若 o=1 则包含四个整数 l1,r1,l2,r2;
- 若 o=2 则包含两个整数 p,x;
- 若 o=3 则包含两个整数 q,y。
对于每次编号为 1 的操作,输出一行一个字符串 Yes 或 No 表示答案。
4 1
1 2 2 1
3 4 4 3
1 1 4 1 4
Yes
10 10
6 6 5 3 0 9 2 0 0 0
5 3 4 7 4 4 7 4 7 7
3 5 8
3 4 8
1 3 4 1 2
2 5 5
3 10 8
1 6 8 1 7
1 3 4 1 2
2 8 8
2 9 8
1 4 4 2 2
Yes
No
Yes
Yes
Hint
样例 1 解释
最初序列是 1 2 2 1,可能的操作如下:
- 删去连续两个
2 得到 1 1。
- 删除连续两个
1 得到空串。
- 在开头添加连续两个
3 得到 3 3。
- 在第一个位置后添加连续两个
4 得到 3 4 4 3。
此时与 t 完全相同,故输出 Yes。
数据范围
| 子任务编号 |
max(n,m)≤ |
o=1 |
分值 |
| 1 |
2000 |
✓ |
5 |
| 2 |
^ |
✗ |
10 |
| 3 |
105 |
✓ |
| 4 |
5×105 |
^ |
20 |
| 5 |
5×104 |
✗ |
15 |
| 6 |
105 |
^ |
| 7 |
5×105 |
25 |
对于所有数据:保证 1≤n≤5×105,1≤m≤5×105,0≤si,ti,x,y≤5×105,1≤l1≤r1≤n,1≤l2≤r2≤n,1≤p,q≤n。