1275: 修数列
题目
题目描述
你需要维护一个长为 n 的 01 序列 a,有 m 个操作:
- 1 l r
: 把区间[l,r]的数变成 0
- 2 l r
: 把区间[l,r]的数变成 1
- 3 l r
: [l,r-1]内所有数 a[i],变为 a[i]与 a[i+1]按位或的值,这些数同时进 行这个操作
- 4 l r
: [l+1,r]内所有数 a[i],变为 a[i]与 a[i-1]按位或的值,这些数同时进 行这个操作
- 5 l r
: [l,r-1]内所有数 a[i],变为 a[i]与 a[i+1]按位与的值,这些数同时进 行这个操作
- 6 l r
: [l+1,r]内所有数 a[i],变为 a[i]与 a[i-1]按位与的值,这些数同时进 行这个操作
- 7 l r
: 查询区间[l,r]的和
输入格式
第一行两个数表示 $n$ 和 $m$
第二行 $n$ 个数表示序列 $a$ 之后 $m$ 行,每行三个数 $opt l r$,表示是哪一种操作以及操作对应的区间
输出格式
对于每个查询操作输出一行一个数表示答案
样例输入
text
5 5
0 1 0 0 1
3 2 5
5 2 5
2 2 2
6 1 5
7 1 5
样例输出
text
1
序列每次的样子:
text
0 1 0 0 1
0 1 0 1 1
0 0 0 1 1
0 1 0 1 1
0 0 0 0 1
0 0 0 0 1
数据范围
时间限制:3000 ms 空间限制:512 mb
全局限制
- $1 \leq n, m \leq 1000000$
部分限制
- $(\text{25 points})~ 1\leq n, m\leq 1000$
- $(\text{25 points})~ 1\leq n, m\leq 100000$
- $(\text{25 points})~ $ 操作和序列均随机生成
- $(\text{25 points})~ $ 无限制
Oops! 本题目还没有解答!
助教老师们编题的速度,已经超过了解题的速度!
OJ翻了一新,但本解答集还大多用的是2017-2019级,甚至更早的同学们贡献的答案。
如果你已经AC了,可以的话,请您参考添加页面,与大家一起分享你的题解!