Skip to content

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了,可以的话,请您参考添加页面,与大家一起分享你的题解!