/ Vijos / 题库 /

小岛的宝石串

小岛的宝石串

描述

这个题目要你维护一个 0/1 序列,支持以下操作。
(1)Set a b 0/1: 将 [a, b] 区间赋值为 0/1。
(2)Reverse a b: 将 [a, b] 区间的状态翻转。
(3)Count a b 0/1: 统计 [a, b] 区间有多少 0/1。
(4)Longest a b 0/1: 统计 [a, b] 最长一段 0/1 序列的左右端点。。如果没有则输出 -1。(如果有多解则输出字典序最小的一组)
(5)Query a: 询问 a 的颜色,以及它左右和他颜色相同的序列最长可以延伸到哪里。

格式

输入格式

一行 n 表示序列数目。(n <= 100000)
接下来 n 个数字 0/1 表示初始状态。
一行 m 表示操作数(m <= 100000)。接下来 m 个操作。

输出格式

对每个操作输出询问结果。

样例1

样例输入1

10
0 1 1 1 0 1 1 1 0 0
10
Set 1 10 0
Reverse 1 5
Set 6 9 1
Count 8 9 1
Query 3
Query 2
Reverse 1 8
Count 1 7 0
Set 2 5 0
Count 7 9 1

样例输出1

2
1 1 9
1 1 9
7
1

样例2

样例输入2

10
0 0 1 0 0 0 1 1 1 0
10
Longest 2 9 1
Set 2 4 1
Reverse 3 5
Count 5 10 0
Longest 6 6 1
Reverse 3 9
Set 2 10 1
Longest 3 6 1
Reverse 3 5
Query 3

样例输出2

7 9
2
-1
3 6
0 3 5

限制

来源

感谢 温馨与信赖的 岛哥 ^_^ 提供.

信息

ID
1874
难度
9
分类
(无)
标签
(无)
递交数
8
已通过
3
通过率
38%
被复制
3
上传者

相关

在下列训练计划中:

RP++分类题库