欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1872E.Data Structures Fan
Data Structures Fan
题目描述
给定一个整数数组 ,以及一个长度为 的二进制字符串 ()。
Augustin 非常喜欢数据结构,因此他让你实现一个数据结构来回答 个查询。查询有两种类型:
- “1 ”()——将 中第 到第 个字符全部取反。即,将所有 变为 ,所有 变为 。
- “2 ”()——计算所有满足 的 的按位异或(bitwise XOR)值。注意,空集的 被认为是 。
请你帮助 Augustin 回答所有的查询!
例如,若 ,,,考虑如下查询序列:
- “2 ”——我们关注 的下标。此时 ,对应下标为 和 ,因此答案为 。
- “1 ”——将 取反, 由 变为 。
- “2 ”——关注 的下标。此时 ,下标为 ,答案为 $a_2 \oplus a_3 \oplus a_4 = 2 \oplus 3 \oplus 6 = 7$。
- “1 ”—— 变为 。
- “2 ”——,没有 的下标,因此答案为 。
二进制字符串指仅包含 和 的字符串。
输入格式
输入的第一行包含一个整数 (),表示测试用例的数量。
接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数 (),表示数组的长度。
第二行包含 个整数 ()。
第三行包含一个长度为 的二进制字符串 。
第四行包含一个整数 (),表示查询的数量。
接下来的 行,每行描述一个查询。每个查询的第一个数字 表示查询类型:若 ,则后面有两个整数 ,表示执行类型 的操作,参数为 ;若 ,则后面有一个整数 ,表示执行类型 的操作,参数为 。
保证所有测试用例中 的总和不超过 ,所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例中的每个类型 的查询,输出对应的答案。
说明/提示
我们来分析第一个测试用例:
- “2 ”——我们关注 的下标。此时 ,下标为 ,答案为 $a_1 \oplus a_3 \oplus a_4 \oplus a_5 = 1 \oplus 3 \oplus 4 \oplus 5 = 3$。
- “2 ”——关注 的下标。此时 ,只有下标 ,答案为 。
- “1 ”——将 取反, 由 变为 。
- “2 ”——关注 的下标。此时 ,下标为 ,答案为 $a_1 \oplus a_2 \oplus a_5 = 1 \oplus 2 \oplus 5 = 6$。
- “2 ”——关注 的下标。此时 ,下标为 ,答案为 。
- “1 ”—— 变为 。
- “2 ”——关注 的下标。此时 ,下标为 ,答案为 $a_1 \oplus a_2 \oplus a_4 = 1 \oplus 2 \oplus 4 = 7$。
由 ChatGPT 4.1 翻译
样例
5
5
1 2 3 4 5
01000
7
2 0
2 1
1 2 4
2 0
2 1
1 1 3
2 1
6
12 12 14 14 5 5
001001
3
2 1
1 2 4
2 1
4
7 7 7 777
1111
3
2 0
1 2 3
2 0
2
1000000000 996179179
11
1
2 1
5
1 42 20 47 7
00011
5
1 3 4
1 1 1
1 3 4
1 2 4
2 0
3 2 6 7 7
11 7
0 0
16430827
47
在线编程 IDE
建议全屏模式获得最佳体验
键盘快捷键
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |
第 1 行,第 1 列
0 字符
-
最近自测结果
暂未运行
最近递交结果
暂无递交记录