luogu#P8263. [Ynoi Easy Round 2020] TEST_8
[Ynoi Easy Round 2020] TEST_8
题目描述
给出一个长度为 的 串 (一个由 和 组成的序列,下标为 到 的整数)。
支持以下几种操作:
操作1:给出 ,将 串下标为 到 的一段重复 次并放回原位;
操作2:给出 ,将 串下标为 到 的一段带翻转地重复 次(具体地说,第 ()次重复时,若 的二进制表示中有奇数个 ,则这次重复时要左右反转,否则不变),最后放回原位;
操作3:给出 ,将 串下标为 到 的一段删除;
操作4:给出 ,求 串中从左到右第 个 的位置,若 超过 串中 的个数,则输出 。
输入格式
第一行一个整数 。
接下来一行,一个长度为 的 串。
接下来一行,一个整数 。
接下来 行,每行第一个整数 表示操作类型。
若 或 ,这一行接下来有三个整数 。
若 ,这一行接下来有两个整数 。
若 ,这一行接下来有一个整数 。
输出格式
对每个操作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
保证 串在操作前的长度;
在操作 中,。
对于 的数据, 以及 串的长度始终不超过 ;
对于 的数据,只有一次操作4,且没有操作2。
对于 的数据,, 串的长度始终不超过 ;
样例解释:
第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、