TouchStone
  请登录后使用
登录 注册
 系统首页  练习题库  考试列表  判题结果  问题讨论与解答  统计信息与排名
  • 首页
  • 题库
  • P2645
  • 题目
  • P2645【SCOI2010 DAY2】序列操作
    限制 : 时间限制 : 20000 MS   空间限制 : 65536 KB
    问题描述

    时限:2s
      lxhgww最近收到了一个01序列,序列里面包含了n个数,这些数要么是0,要么是1,现在对于这个序列有五种变换操作和询问操作:
      0 a b 把[a, b]区间内的所有数全变成0
      1 a b 把[a, b]区间内的所有数全变成1
      2 a b 把[a,b]区间内的所有数全部取反,也就是说把所有的0变成1,把所有的1变成0
      3 a b 询问[a, b]区间内总共有多少个1
      4 a b 询问[a, b]区间内最多有多少个连续的1
      对于每一种询问操作,lxhgww都需要给出回答,聪明的程序员们,你们能帮助他吗?

    输入格式

    输入数据第一行包括2个数,n和m,分别表示序列的长度和操作数目
    第二行包括n个数,表示序列的初始状态
    接下来m行,每行3个数,op, a, b,(0<=op<=4,0<=a<=b<n)表示对于区间[a, b]执行标号为op的操作

    输出格式

    对于每一个询问操作,输出一行,包括1个数,表示其对应的

    样例输入

     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

    样例输出

    5
    2
    6
    5

    提示

    对于30%的数据,1<=n, m<=1000
    对于100%的数据,1<=n, m<=100000