问题 F: 双子

内存限制:128 MB 时间限制:2 S
题面:传统 评测方式:文本比较 上传者:
提交:2 通过:0

题目描述

:我去,初音——!

:啊?哪有大葱?

:是那个边喊着Saki酱边爬的初音!

题目描述

Uika 有一个字符串 ss ,Hatsune 有一个字符串 tt ,她们分别在 ss 和 tt 中各取一个非空子串 s′,t′s,t ,再将两个字符串拼接得到一个新的字符串 s′+t′s+t 。

Uika 和 Hatsune 想知道有多少种不同的选取方法可以使得拼接后的新字符串为回文串。

在一种选取方法中,在 ss 中选取的子串 s′s 位于 ss 的 [l1,r1][l1,r1] 区间内,在 tt 中选取的子串 t′t 位于 tt 的 [l2,r2][l2,r2] 区间内,我们记为四元组 (l1,r1,l2,r2)l1,r1,l2,r2 ,两种选取方法是不同的当且仅当两个四元组之间有至少一个元素不同。

由于这个数字可能很大,因此你需要输出答案对 109+7109+7 取模后的结果。


输入格式

第一行输入一个正整数 T(1≤T≤2×105)T1T2×105 ,表示数据组数。

对于每一组数据:

第一行输入两个整数 n,m(1≤n,m≤2×105)n,m1n,m2×105 ,分别表示字符串 s,ts,t 的长度。

第二行输入一个仅包含小写字母的字符串 ss 。

第三行输入一个仅包含小写字母的字符串 tt 。

数据保证 ∑n≤2×106,∑m≤2×106n2×106,m2×106 。

输出格式

对于每组数据,在一行中输出一个整数代表选取的方法数。

输入样例 复制

2
2 2
ab
ab
3 1
aaa
a

输出样例 复制

4
6

数据范围与提示

对于第1组样例:"aa","bb","aba","bab",共4个。