#P8006. String Rearrangement in Phantom

String Rearrangement in Phantom

题目描述

有一字符串 SS,每次询问两串 S[l1,r1]S[l_1,r_1]S[l2,r2]S[l_2,r_2],问有多少划分方式使得 S[l1,r1]=A+B+CS[l_1,r_1]=A+B+CC+BR+A=S[l2,r2]C+B^R+A=S[l_2,r_2]。其中 BRB^R 表示 BB 串的翻转,++ 表示字符串的拼接,S[l,r]S[l,r] 表示提取串 SS 的第 ll 到第 rr 个字符。A,B,CA,B,C 可以为空。

输入格式

第一行两个正整数 nnmm 表示 SS 的长度和询问数。

第二行一个长度为 nn 的小写字母组成的字符串表示 SS

接下来 mm 行,每行四个正整数 l1,r1,l2,r2l_1,r_1,l_2,r_2 表示询问区间,保证 r1l1=r2l2r_1-l_1=r_2-l_2

输出格式

mm 行,每行一个正整数表示答案。

10 4
aabbaabbaa
1 6 5 10
3 6 5 8
1 3 5 7
1 10 1 10
11
9
2
17

提示

本题采用捆绑测试

子任务编号 分值 特殊限制
00 1010 1n,m1001\le n,m\le 100
11 1n,m5001\le n,m\le 500
22 2020 1n,m30001\le n,m\le 3000
33 3030 1n,m5×1041\le n,m\le 5\times 10^4
44 1n2×1051\le n\le 2\times 10^51m1051\le m\le 10^5

对于所有数据,保证 1n2×1051\le n\le 2\times 10^51m1051\le m\le 10^51l1r1n1\le l_1\le r_1\le n1l2r2n1\le l_2\le r_2\le nr1l1=r2l2r_1-l_1=r_2-l_2

对于编号为 ii 的 Subtask,其时限为 i+1i+1 秒。