口令片段(fragment)
题目描述
DAMON THRONE 的训练系统生成了一个长度为 n 的口令串 s。
现在有 q 次询问。每次询问给出四个整数 l1,r1,l2,r2,表示两个子串:
sl1sl1+1…sr1
和:
sl2sl2+1…sr2
请你判断这两个子串是否完全相同。
如果相同,输出 Yes;否则输出 No。
输入格式
第一行包含两个整数 n,q,表示字符串长度和询问次数。
第二行包含一个长度为 n 的字符串 s,字符串只包含小写英文字母。
接下来 q 行,每行包含四个整数 l1,r1,l2,r2,表示一次询问。
输出格式
对于每次询问,输出一行。
如果两个子串完全相同,输出:Yes
否则输出:No
输入输出样例 #1
输入 #1
7 5
abacaba
1 3 5 7
1 4 4 7
2 4 4 6
1 1 7 7
3 5 1 3
输出 #1
Yes
No
No
Yes
No
样例解释 #1
第 1 次询问:
s1∼3=aba
s5∼7=aba
两个子串相同,所以输出 Yes。
第 2 次询问:
s1∼4=abac
s4∼7=caba
两个子串不同,所以输出 No。
输入输出样例 #2
输入 #2
6 4
aaaaaa
1 3 2 4
1 6 1 5
3 3 6 6
2 5 1 4
输出 #2
Yes
No
Yes
Yes
数据范围与约定
对于所有测试数据,保证:
$$1 \le n,q \le 2\times 10^5,\quad 1 \le l_1 \le r_1 \le n ,\quad 1 \le l_2 \le r_2 \le n
$$
字符串 s 只包含小写英文字母。
| 测试点 |
分值 |
n |
q |
特殊性质 |
| 1∼2 |
10 |
≤200 |
无 |
| 3∼4 |
20 |
≤2000 |
A |
| 5∼6 |
≤105 |
B |
| 7∼8 |
≤2×105 |
C |
| 9∼10 |
30 |
无 |
特殊性质 A:保证每次询问的两个子串长度都不超过 20。
特殊性质 B:保证字符串中所有字符都相同。
特殊性质 C:保证每次询问都有 r1−l1=r2−l2。