luogu#P8263. [Ynoi Easy Round 2020] TEST_8

[Ynoi Easy Round 2020] TEST_8

题目描述

给出一个长度为 nn0101SS(一个由 0011 组成的序列,下标为 11nn 的整数)。

支持以下几种操作:

操作1:给出 l,r,kl,r,k,将 0101 串下标为 llrr 的一段重复 kk 次并放回原位;

操作2:给出 l,r,kl,r,k,将 0101 串下标为 llrr 的一段带翻转地重复 kk 次(具体地说,第 ii1ik1\leq i\leq k)次重复时,若 i1i-1 的二进制表示中有奇数个 11,则这次重复时要左右反转,否则不变),最后放回原位;

操作3:给出 l,rl,r,将 0101 串下标为 llrr 的一段删除;

操作4:给出 kk,求 0101 串中从左到右第 kk11 的位置,若 kk 超过 0101 串中 11 的个数,则输出 1-1

输入格式

第一行一个整数 nn

接下来一行,一个长度为 nn0101 串。

接下来一行,一个整数 mm

接下来 mm 行,每行第一个整数 opop 表示操作类型。

op=1op=1op=2op=2,这一行接下来有三个整数 l,r,kl,r,k

op=3op=3,这一行接下来有两个整数 l,rl,r

op=4op=4,这一行接下来有一个整数 kk

输出格式

对每个操作4,输出一行,表示答案。

11
11011100010
5
3 2 3
2 6 8 5
1 2 5 3
4 8
4 100
10
-1

提示

Idea:ccz181078,Solution:ccz181078,Code:ccz181078,Data:ccz181078

保证1lr1\leq l\leq r\leq 0101串在操作前的长度;

在操作 1,2,41,2,4 中,1k1081\leq k\leq 10^8

对于 20%20\% 的数据,n,mn,m 以及 0101 串的长度始终不超过 2020

对于 40%40\% 的数据,只有一次操作4,且没有操作2。

对于 100%100\% 的数据,1n,m1051\leq n,m\leq 10^50101 串的长度始终不超过 10810^8

样例解释:

第1次操作:1[10]11100010->111100010,删除了10、

第2次操作:11110[001]0->11110[001,100,100,001,100]0->111100011001000011000,将001重复了5次,其中第2,3,5次是翻转的、

第3次操作:1[1110]0011001000011000->1[1110,1110,1110]0011001000011000->11110111011100011001000011000,将1110重复了3次、

第4次操作:111101110[1]1100011001000011000,第8个1在01串中的第10个位置、

第5次操作:不存在100个1,输出-1、