题目背景
原题链接:https://oier.team/problems/92。
祈祷着今后的你的人生,永远都有幸福的“魔法”相伴。
以下是本题所用记号的约定。
字符串下标均从 1 开始。
∣S∣ 表示字符串 S 的长度。
Si 表示字符串 S 的第 i 个字符。
记字符串 S 为 T 的前缀,当且仅当:
- ∣S∣≤∣T∣,
- ∀i∈[1,∣S∣],Si=Ti。
记字符串 S 为 T 的后缀,当且仅当:
- ∣S∣≤∣T∣,
- ∀i∈[1,∣S∣],S∣S∣−i+1=T∣T∣−i+1。
合法括号序列的定义如下:
- 空串是合法括号序列。
- 若 A 为合法括号序列,则 (A) 为合法括号序列。
- 若 A,B 为合法括号序列,则 AB 为合法括号序列。
题目描述
千和有 n 个括号序列,分别是 S1,S2,S3,…,Sn。
小黑有 m 个括号序列,分别是 T1,T2,T3,…,Tm。
对一个括号序列 A,f(A) 为满足以下条件的正整数对 (i,j) 对数:
- i∈[1,n],j∈[1,m];
- Si 是 A 的前缀且 Tj 是 A 的后缀。
她们想知道对于所有长度为偶数 k 的合法括号序列 S,f(S) 的和。答案对 109+7 取模。
输入格式
第一行,一个正整数 c,表示测试点编号。特殊地,对样例,c=0。
第二行,三个正整数 n,m,k,其中 k 为偶数。
接下来 n 行,每行一个字符串 Si。
接下来 m 行,每行一个字符串 Tj。
输出格式
仅一行,一个自然数,表示答案对 109+7 取模后的值。
0
1 2 6
(
()
())
4
提示
【样例解释 #1】
长度为 6 的合法括号序列有 ()()()
、()(())
、(())()
、(()())
、((()))
,分别记作 S1,S2,S3,S4,S5,答案为 f(S1)+f(S2)+f(S3)+f(S4)+f(S5)=1+1+1+1+0=4。
【样例 #2】
见附件中的 bracket/bracket2.in
与 bracket/bracket2.ans
。
该组样例满足测试点 1∼2 的约束条件。
【样例 #3】
见附件中的 bracket/bracket3.in
与 bracket/bracket3.ans
。
该组样例满足测试点 3∼4 的约束条件。
【样例 #4】
见附件中的 bracket/bracket4.in
与 bracket/bracket4.ans
。
该组样例满足测试点 14∼15 的约束条件。
【样例 #5】
见附件中的 bracket/bracket5.in
与 bracket/bracket5.ans
。
该组样例满足测试点 20∼21 的约束条件。
【数据范围】
对于所有测试数据,保证 1≤n,m≤2×105,$1\leq \vert S_i\vert,\vert T_j\vert\leq \min(k,5\times 10^5)$,$1\leq \sum \vert S_i\vert,\sum \vert T_j\vert\leq 10^7$,2≤k≤106,k 为偶数。
测试点编号 |
n,m≤ |
∣Si∣,∣Tj∣≤ |
∑∣Si∣,∑∣Tj∣≤ |
k≤ |
特殊性质 |
1∼2 |
10 |
100 |
15 |
无 |
3∼4 |
50 |
100 |
5×103 |
100 |
5∼8 |
250 |
5×103 |
5×105 |
5×103 |
9∼11 |
5×103 |
105 |
2×105 |
12∼13 |
5×104 |
A |
14∼15 |
B |
16∼17 |
105 |
2×103 |
106 |
C |
18∼19 |
105 |
20∼21 |
无 |
22∼23 |
2×105 |
5×105 |
107 |
106 |
C |
24∼25 |
无 |
- 特殊性质 A:k<min∣Si∣+min∣Tj∣;
- 特殊性质 B:保证 Si,Tj 是合法的括号序列;
- 特殊性质 C:k≥max∣Si∣+max∣Tj∣。