#P12660. [集训队互测2025day4]观虫我
[集训队互测2025day4]观虫我
题目描述
给定一个长度为 的二进制序列 ,该序列由 和 组成。最初序列的所有元素均为 。你的任务是对该序列执行 次操作:
- 翻转操作:对于给定的下标 ,翻转 (即将 变为 )。该操作表示为
! i。 - 查询操作:对于给定的下标 ,确定所有满足 的 中, 的个数是奇数还是偶数。这里 意味着在 和 的二进制表示中, 中所有为 的位在 中对应的位也必须是 。该操作表示为
? i。
输入格式
第一行包含两个整数 和 ,表示序列的长度为 ,接下来有 个操作。
接下来的 行,每一行表示一个操作,可以是以下两种形式之一:
! i表示一个翻转操作。? i表示一个查询操作。
输出格式
对于每个查询操作 ? i,输出一个整数:
- 如果满足条件的 中 的个数为奇数,输出 。
- 如果 的个数为偶数,输出 。
样例 1
样例 1 输入
4 10
! 4
? 15
! 2
? 12
! 8
! 5
? 10
? 7
? 13
? 15
样例 1 输出
1
1
0
1
1
0
样例 2
样例 2 输入
32 10
! 772
! 34373648
? 4286562043
? 3890741199
! 18874880
! 269484552
! 1122312
? 4277131259
! 104867841
? 3087007739
样例 2 输出
1
1
1
1
附加样例 1~100
见附件下载中的 ex_subset1~100.in 与 ex_subset1~100.out。
是的,你没有看错 (@^◡^)
数据范围
| 子任务编号 | 子任务分值 | 测试点个数 | $n=$ | $q=$ | 特殊性质 |
|---|---|---|---|---|---|
| $1$ | $10$ | $8$ | $24$ | $10^6$ | 无 |
| $2$ | $10$ | $8$ | $26$ | $10^6$ | 无 |
| $3$ | $10$ | $8$ | $28$ | $10^6$ | 无 |
| $4$ | $10$ | $8$ | $30$ | $10^6$ | 无 |
| $5$ | $10$ | $8$ | $32$ | $10^6-10$ | 数据随机生成 |
| $6$ | $50$ | $20$ | $32$ | $10^6$ | 无 |
对于子任务 ,数据按照下面的规则随机生成,其中所有的随机事件彼此独立:
- 每个操作有 的概率是翻转操作或查询操作。
- 翻转操作下标的每一个二进制位有 的概率为 ,有 的概率为 。
- 查询操作下标的每一个二进制位有 的概率为 ,有 的概率为 。