#P11415. [2025安徽省队集训]追忆

[2025安徽省队集训]追忆

【题目背景】

「他们说这就是人生 试着体会试着忍住眼泪 还是躲不开应该有的情绪」

闪着蓝光的绿色轻轨电车就这样驶过,就这样错过。

一晃便已成为了遥远的过去啊。哪怕时过境迁,大家也都跟反复提过那时应该是多么美好。只是,我想长崎素世小姐说的恐怕是对的吧,「我们早已回不到当初。」我们的社交圈子也早就彻彻底底地变了,回到曾经要付出代价绝对不会小吧!

世界绝不会为我们的改变而停下转动,所以我当然也要继续向前看、向前走。但只要闲了下来,还是会情不自禁地追忆起那时啊。

【题目描述】

嘉陵江畔,小 s、小 f 和我曾玩过一个字符串游戏。

我们有一个小写英文字符串 SS,三个人可以以任意顺序操作字符串,但要求 SS 始终非空。

小 s 操作时会删除 SS 的第一个字符,小 f 操作时会删除 SS 的第 S|S| 个字符,而我可以选择一个真后缀 TT 满足它也是 SS 反串的真后缀,将 SS 变为 TT

我觉得我的操作很酷,所以我想要最大化我的操作次数。

因为我们\color{white}\text{曾}命运共同体,所以小 s 和小 f 也愿意帮助我最大化操作次数。

作为 E 队爷的小 s 和小 f 显然都是充分聪明的,只可惜我不太聪明。

于是我想要请教你,如果能回到当初,我也最优化我的操作,我会进行多少次操作呢?

考虑到这已经是遥远的过去 (2024.1.25)\color{white}{(2024.1.25)},初始的 SS 已模糊不清。

于是我给你一个小写字符串 TT,向你询问 qq 次:如果当初的 S=T[li,ri]S=T[l_i,r_i] ,我的最大操作次数会是多少?

【输入格式】

从文件 recall.in 中读入数据。

第一行两个整数 c,qc,q 表示子任务编号和询问次数。样例满足 c=0c=0

第二行一个小写字符串 SS

接下来 qq 行,第 i(1iq)i(1\leq i\leq q) 行两个整数 li,ril_i,r_i 表示询问。

【输出格式】

输出到文件 recall.out 中。

qq 行,每行一个整数表示该次询问的答案。

【样例 11 输入】

0 3
aaaabbaabba
1 4
4 11
4 5

【样例 11 输出】

3
4
0

【样例 22 输入】

0 10
hbbhbhhbbh
1 10
6 7
2 8
9 10
7 8
6 7
8 8
9 10
3 8
2 3

【样例 22 输出】

3
1
2
0
0
1
0
0
2
1

【样例 33

见选手目录下的 recall/recall3.in 与 recall/recall3.ans。

这个样例满足子任务 11 的约束条件。

【样例 44

见选手目录下的 recall/recall4.in 与 recall/recall4.ans。

这个样例满足子任务 44 的约束条件,且满足 l1=1,r1=Sl_1=1,r_1=\lvert S\rvert

【样例 55

见选手目录下的 recall/recall5.in 与 recall/recall5.ans。

这个样例满足子任务 44 的约束条件,且满足 l1=1,r1=Sl_1=1,r_1=\lvert S\rvert

【数据范围】

本题采用子任务捆绑:仅有通过该子任务内所有测试点才可以获得全分。

对于所有数据,

  • 1S,q1051\leq \lvert S\rvert,q\leq 10^5
  • SS 中仅包含小写字母,
  • 1iq\forall 1\leq i\leq q1liriS1\leq l_i\leq r_i\leq \lvert S\rvert
子任务编号 S\lvert S\rvert\leq qq\leq 特殊性质 分值
11 10310^3 1212
22 10510^5 10510^5 A 88
33 11 B 4444
44 10510^5 3636
  • 特殊性质 A:1i<S\forall 1\leq i<\lvert S\rvertsi=si+1s_i=s_{i+1}

  • 特殊性质 B:1iq\forall 1\leq i\leq qli=1,ri=Sl_i=1,r_i=\lvert S\rvert

子任务编号$\lvert S\rvert\leq$$q\leq$特殊性质分值
1$10^3$$10^3$$12$
2$10^5$$10^5$A$8$
3$10^5$$1$B$44$
4$10^5$$10^5$$36$