『Noi2016十连测第二场 - 幻想』

pdf版题面 在线提交(需要权限)

题目

问题描述

我们伟大的领袖 V 成功地找到了自己被赋予力量的意义——既然有如此强大的能力,就应该去守护人们的幻想。

一个人的幻想是一个字符串,幻想是在不断变化的,所以可能会在末尾加上一个字符或者删去一个字符。为了守护幻想, V 需要知道在字符串中第$L$个字符(字符由$1$开始编号)到第$R$个的串中存在多少个 V 给定的串。

输入格式

第一行一个字符串表示初始幻想。

第二行一个整数$q$表示操作数量。

接下来$q$行,每行第一个数$k$表示操作类型。

若$k=1$,接下来是一个字符表示在幻想末尾加上这个字符。

若$k=2$,表示删除当前末尾字符。

若$k=3$,接下来两个整数$L, R$,表示一次询问,接下来读入一个字符串表示询问串。

保证字符串只含有小写字母和大写字母,小写字母az的编号是$0$到$25$,大写字母AZ编号是$26$到$51$。

这是一个紧急事件, V 需要立刻知道询问的答案,所以进行强制在线。我们记录上一次询问的答案为$Last$(初始为$0$),那么读入$L$和$R$需要异或$Last$ 得到真实的$L$和$R$。对于一个字符,我们设它的编号是$t$,那么真实的编号是$(t+Last)\%52$,$\%$表示取模。

输出格式

对于每个询问输出一行表示这个询问的答案。

样例输入

ababa
5
3 1 4 ab
1 Z
3 3 4 YZ
2
3 2 6 X

样例输出

2
3
3

样例解释

第一次询问$1$到$4$串abab中有多少ab,答案是$2$

第二次操作后的串是ababab

第三次询问$1$到$6$串ababab中有多少ab,答案是$3$

第四次操作后的串是ababa

第五次询问$1$到$5$串ababa中有多少a,答案是$3$

数据范围与约定

记询问串总长为$Len$,幻想串最长长度为$Max$。

对于$20\%$的数据$Max,q\leq 5000,Len \leq 100000$

对于另外$20\%$的数据$Max,q\leq 100000,Len \leq 500000$

对于另外$20\%$的数据不存在$1$操作

对于另外$20\%$的数据$Len \leq 500000$

对于$100\%$的数据$Max \leq 200000,q \leq 500000,Len \leq 5000000$

输入量较大,请使用快速的输入输出方式。

题解

(稍后再补)

代码

(稍后再补)

文章目录
  1. 1. 题目
    1. 1.1. 问题描述
    2. 1.2. 输入格式
    3. 1.3. 输出格式
    4. 1.4. 样例输入
    5. 1.5. 样例输出
    6. 1.6. 样例解释
    7. 1.7. 数据范围与约定
  2. 2. 题解
  3. 3. 代码
,