7410: 51NOD 线段树练习 4
[Creator : ]
Description
你需要维护一个长为 n 的序列,支持 m 个操作:
0 l r 把 [l,r] 区间内的所有数全变成 0
1 l r 把 [l,r] 区间内的所有数全变成 1
2 l r 把 [l,r] 区间内的所有数全部取反,也就是说把所有的 0 变成 1,把所有的 1 变成 0
3 l r 询问 [l,r] 区间内总共有多少个 1
4 l r 询问 [l,r] 区间内最多有多少个连续的 1
0 l r 把 [l,r] 区间内的所有数全变成 0
1 l r 把 [l,r] 区间内的所有数全变成 1
2 l r 把 [l,r] 区间内的所有数全部取反,也就是说把所有的 0 变成 1,把所有的 1 变成 0
3 l r 询问 [l,r] 区间内总共有多少个 1
4 l r 询问 [l,r] 区间内最多有多少个连续的 1
Input
第一行两个正整数 n,m,表示序列长度与操作个数。
第二行包括 n 个数,表示序列的初始状态。
接下来 m 行,每行三个整数,表示一次操作。
第二行包括 n 个数,表示序列的初始状态。
接下来 m 行,每行三个整数,表示一次操作。
Output
对于每一个询问操作,输出一行一个数,表示其对应的答案。
Constraints
对于 30% 的数据,1≤n,m≤1000;
对于100% 的数据,1≤n,m≤100000。
对于100% 的数据,1≤n,m≤100000。
Sample 1 Input
10 10
0 0 0 1 1 0 1 0 1 1
1 0 2
3 0 5
2 2 2
4 0 4
0 3 6
2 3 7
4 2 8
1 0 5
0 5 6
3 3 9
Sample 1 Output
5
2
6
5