#P12588. [集训队互测 2023day1]复读程度

[集训队互测 2023day1]复读程度

当前没有测试数据。

题目描述

给定字符串 s[1,n]s[1, n] ,第 ii 个字符被赋予两个权值:左权值 wliw l_i 和右权值 wri 。 w r_{i \text { 。 }}

定义一个子串 s[l,r]s[l, r] 的左权值 vl(s[l,r])v l(s[l, r]) 为: 其在原串中各个匹配的左端点的左权值 wlw l 和;右权值 vr(s[l,r])v r(s[l, r]) 为: 其在原串中各个匹配的右端点的右权值 wrw r 和。这里 ttss 中所有的 匹配是 1ijn,s[i,j]=t\forall 1 \leq i \leq j \leq n, s[i, j]=t ,我们把这样的 iijj 分别叫做一个匹配的左右端点。

定义一个子串 s[l,r]s[l, r] 的复读程度是它的左权值与右权值的乘积,即 w(s[l,r])=vl(s[l,r])vr(s[l,r])w(s[l, r])=v l(s[l, r]) \cdot v r(s[l, r])

qq 次查询 l1,r1,l2,r2l_1, r_1, l_2, r_2 ,令 $S=\left\{(l, r) \mid r-l \geq \max \left\{r_1-l_1, r_2-l_2\right\}, s\left[l, l+r_1-l_1\right]=s\left[l_1, r_1\right], s\left[r-r_2+l_2, r\right]=s\left[l_2, r_2\right]\right\}$ ,即以 SS 为所有满足 s[l1,r1]s\left[l_1, r_1\right]s[l,r]s[l, r] 的前缀, s[l2,r2]s\left[l_2, r_2\right]s[l,r]s[l, r] 的后缀的 (l,r)(l, r) 的集合。求 (l,r)Sw(s[l,r])\sum_{(l, r) \in S} w(s[l, r])

由于答案很大,你只需要输出答案对 2642^{64} 取模后的结果。

输入格式

第一行两个正整数 n,qn, q ,表示字符串长度与查询次数。

第二行一个由小写字母构成的字符串 ss

第三行 nn 个整数 wliw l_i 表示左权值。

第四行 nn 个整数 wriw r_i 表示右权值。

接下来 qq 行,每行给出四个整数 l1,r1,l2,r2l_1, r_1, l_2, r_2 ,表示一次查询。

输出格式

qq 行,第 ii 行输出第 ii 次查询的答案对 2642^{64} 取模后的结果。

样例数据

样例输入

6 5
ababcc
1 1 1 1 1 1
1 1 1 1 1 1
1 1 5 5
3 4 1 2
1 1 2 2
1 2 6 6
5 5 1 2

样例输出

4
9
9
4
0

子任务

保证 $1 \leq n, q \leq 10^5, 0 \leq w l_i, w r_i < 2^{64}, 1 \leq l_1 \leq r_1 \leq n, 1 \leq l_2 \leq r_2 \leq n , s$ 仅有小写字母构成。

  • subtask1(7pts):保证 n,q500n, q \leq 500
  • subtask2(15pts):保证 n,q5000n, q \leq 5000
  • subtask3(12pts):保证 n5000n \leq 5000
  • subtask4(6pts): 保证 l1=1l_1=1 , 且对任意 2in2 \leq i \leq n ,有 s1sis_1 \neq s_i
  • subtask5(16pts):保证 s[l1,r1]s\left[l_1, r_1\right]ss 中最多出现 5 次。
  • subtask6(21pts):保证 n,q5×104n, q \leq 5 \times 10^4
  • subtask7(23pts):无特殊限制。