#X2E. 「Cfz Round 4」Xor-Forces
「Cfz Round 4」Xor-Forces
题目背景
✿(。◕ᴗ◕。)✿
题目描述
给定一个长度为 的数组 ,下标从 开始,维护 次操作:
- 操作一:给定 ,设数列 满足 ,将 修改为 。其中 表示按位异或运算。
- 操作二:给定 ,查询 的下标在 之间的子数组有多少颜色段。不保证 ,若 ,请自行交换 。
其中,一个极长的所有数都相等的子数组称为一个颜色段。
部分测试点要求强制在线。
输入格式
第一行三个整数 ,其中 为决定是否强制在线的参数。
第二行 个整数 。
接下来 行,每行两或三个整数,描述一次操作。第一个整数 表示操作类型。
- 若 ,为操作一,接下来一个整数 ,满足 。
- 若 ,为操作二,接下来两个整数 ,满足 ,。不保证 ,若 ,请自行交换 。
- 其中 表示上次询问的答案。特别地,如果此前没有询问操作,则 。
输出格式
输出若干行,每行包含一个整数,依次表示每个询问的答案。
样例
0 3 3
1 2 1 3 2 4 5 1
2 1 5
1 3
2 5 1
5
4
样例 1 解释
此样例允许离线。
初始时 。
的下标在 之间的子数组为 ,它的颜色段数为 。
进行重排操作后,。
的下标在 之间的子数组为 ,它的颜色段数为 。
1 3 3
1 2 1 3 2 4 5 1
2 1 5
1 6
2 0 4
5
4
样例 2 解释
此样例除强制在线外,与样例 #1 完全一致。
1 4 16
12 9 5 9 12 12 9 12 9 16 5 9 12 16 9 5
2 0 4
1 15
2 14 0
1 15
2 6 0
2 4 14
1 0
1 14
2 4 10
2 6 3
1 7
2 4 13
1 3
1 3
2 4 3
2 15 2
5
7
4
7
9
5
7
2
11
数据范围
对于所有测试数据,,,,,,,。
本题采用捆绑测试。
- Subtask 1(15 points):,,。
- Subtask 2(15 points):,不存在操作一。
- Subtask 3(20 points):,对于所有操作二,要么 ,要么 。
- Subtask 4(20 points):。
- Subtask 5(30 points):。
注意:Subtask 5 依赖前四个 Subtask,只有通过前四个 Subtask 才能尝试获得该 Subtask 的分数。