#ABC322F. 假期查询

假期查询

假期查询

题目描述

给定一个长度为 NN、由 0 和 1 组成的字符串 SS。设 SiS_i 表示 SS 的第 ii 个字符。

按顺序处理 QQ 个查询。每个查询由三个整数 (c,L,R)(c, L, R) 表示,其中 cc 表示查询类型。

  • c=1c=1:对于满足 LiRL \le i \le R 的每个整数 ii,若 SiS_i 为 1 则改为 0,若为 0 则改为 1。
  • c=2c=2:设 TT 为取出 SS 的第 LL 到第 RR 个字符得到的字符串,输出 TT 中连续 1 的最大个数。

输入格式

输入按以下格式从标准输入给出,其中 queryi\mathrm{query}_i 表示第 ii 个查询:

NN QQ
SS
query1\mathrm{query}_1
query2\mathrm{query}_2
\vdots
queryQ\mathrm{query}_Q

每个查询按以下格式给出:

cc LL RR

输出格式

kkc=2c=2 的查询个数。输出 kk 行。

ii 行输出第 iic=2c=2 查询的答案。

样例

7 6
1101110
2 1 7
2 2 4
1 3 6
2 5 6
1 4 7
2 1 7
3
1
0
7

查询按如下方式处理。

初始时,S=S= 1101110

对于第一个查询,T=T= 1101110TT 中最长的连续 1 是从第 4 个字符到第 6 个字符的 111,因此答案为 33

对于第二个查询,T=T= 101TT 中最长的连续 1 是第 1 个或第 3 个字符处的 1,因此答案为 11

对于第三个查询,该操作将 SS 变为 1110000

对于第四个查询,T=T= 00TT 中不含 1,因此答案为 00

对于第五个查询,该操作将 SS 变为 1111111

对于第六个查询,T=T= 1111111TT 中最长的连续 1 是从第 1 个字符到第 7 个字符的 1111111,因此答案为 77

数据范围

  • 1N5×1051 \le N \le 5 \times 10^5
  • 1Q1051 \le Q \le 10^5
  • SS 是长度为 NN、由 0 和 1 组成的字符串。
  • c{1,2}c \in \lbrace 1, 2 \rbrace
  • 1LRN1 \le L \le R \le N
  • NNQQccLLRR 均为整数。
难度 提高+/省选
通过率
尝试 0
已通过 0
ID
3079
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签