#ABC477C. 区间查找询问 / Range Search Query

区间查找询问 / Range Search Query

题目描述

给定字符串 SS 和 TT。请处理 QQ 个询问。 每个询问给定 LL 和 RR,判断由 SS 的第 LL 个字符到第 RR 个字符组成的子串是否包含 TT 作为子串。

什么是子串?SS 的子串是指从 SS 的开头删除零个或多个字符,并从 SS 的末尾删除零个或多个字符后得到的字符串。 例如,ab 是 abc 的子串,但 ac 不是 abc 的子串。

输入格式

输入按以下格式从标准输入读入:

  • QQ
  • SS
  • TT
  • query1\mathrm{query}_1
  • query2\mathrm{query}_2
  • ⋮\vdots
  • queryQ\mathrm{query}_Q

每个询问 queryq\mathrm{query}_q 按以下格式给出:

  • LL RR

输出格式

输出 QQ 行。第 qq 行:若由 SS 的第 LL 个字符到第 RR 个字符组成的子串包含 TT 作为子串,则输出 Yes,否则输出 No。

3
abcdabc
bc
2 6
3 5
3 7
Yes
No
Yes

考虑第 11 个询问。由 SS 的第 22 个字符到第 66 个字符组成的子串是 bcdab。由 bcdab 的第 11 个字符到第 22 个字符组成的子串与 TT 相同,因此 bcdab 包含 TT。所以答案为 Yes。

10
bbbaaabbbaaaaaabbbab
bbb
5 16
5 6
2 16
6 7
17 19
3 7
7 16
7 20
17 19
2 6
Yes
No
Yes
No
No
No
Yes
Yes
No
No

数据范围

  • SS 是长度在 11 到 4×1054 \times 10^5 之间(含两端)的、由小写英文字母组成的字符串。

  • TT 是长度在 11 到 1010 之间(含两端)的、由小写英文字母组成的字符串。

  • 1≤Q≤2×1051 \leq Q \leq 2 \times 10^5

  • 1≤L≤R≤∣S∣1 \leq L \leq R \leq |S|

  • Q,L,RQ, L, R 均为整数。

  • 来源:AtCoder ABC 477 C

子任务设置

  • 子任务 1(30 分):∣S∣,Q≤2000|S|, Q \le 2000。
  • 子任务 2(70 分):无特殊限制。