题号:NC16545
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
给定一个全为0或者1的序列
这个序列为一个长度为n的左边为高位的二进制串
m次操作两种类型
1. 输入一个数x 表示第x位取反
2. 输入两个数l,r 表示查询区间l到r内有多少连续子区间在二进制下是3的倍数
输入描述:
第一行n m
第二行n个数每个数为0或者1表示序列
接下来m行每行输入一个数op
如果op为1则执行1操作,否则执行2操作
输出描述:
对于每个2操作输出一个数表示答案
示例1
输入
复制
5 5
0 1 1 1 0
2 2 5
1 4
2 1 4
1 5
2 3 5
备注:
n<=5e5
m<=5e5