P8006 String Rearrangement in Phantom
题目描述
有一字符串 $S$,每次询问两串 $S[l_1,r_1]$,$S[l_2,r_2]$,问有多少划分方式使得 $S[l_1,r_1]=A+B+C$,$C+B^R+A=S[l_2,r_2]$。其中 $B^R$ 表示 $B$ 串的翻转,$+$ 表示字符串的拼接,$S[l,r]$ 表示提取串 $S$ 的第 $l$ 到第 $r$ 个字符。$A,B,C$ 可以为空。
输入格式
第一行两个正整数 $n$ 和 $m$ 表示 $S$ 的长度和询问数。
第二行一个长度为 $n$ 的小写字母组成的字符串表示 $S$。
接下来 $m$ 行,每行四个正整数 $l_1,r_1,l_2,r_2$ 表示询问区间,保证 $r_1-l_1=r_2-l_2$。
输出格式
$m$ 行,每行一个正整数表示答案。
说明/提示
**本题采用捆绑测试**
| 子任务编号 | 分值 | 特殊限制 |
| :----------: | :----------: | :----------:|
| $0$ | $10$ | $1\le n,m\le 100$ |
| $1$ | $10$ | $1\le n,m\le 500$ |
| $2$ | $20$ | $1\le n,m\le 3000$ |
| $3$ | $30$ | $1\le n,m\le 5\times 10^4$ |
| $4$ | $30$ | $1\le n\le 2\times 10^5$,$1\le m\le 10^5$ |
对于所有数据,保证 $1\le n\le 2\times 10^5$,$1\le m\le 10^5$,$1\le l_1\le r_1\le n$,$1\le l_2\le r_2\le n$,$r_1-l_1=r_2-l_2$。
对于编号为 $i$ 的 Subtask,其时限为 $i+1$ 秒。