#P2764. [JLOI2011]基因补全

[JLOI2011]基因补全

[JLOI2011] 基因补全

题目描述

在生物课中我们学过,碱基组成了DNADNA(脱氧核糖核酸),他们分别可以用大写字母A,C,T,GA,C,T,G表示,其中AA总与TT配对,CC总与GG配对。两个碱基序列能相互匹配,当且仅当它们等长,并且任意相同位置的碱基都是能相互配对的。例如ACGTCACGTC能且仅能与TGCAGTGCAG配对。一个相对短的碱基序列能通过往该序列中任意位置补足碱基来与一个相对长的碱基序列配对。补全碱基的位置、数量不同,都将视为不同的补全方案。现在有两串碱基序列SSTT,分别有nnmm个碱基(nmn\geq m),问一共有多少种补全方案。

输入格式

数据包括三行。 第一行有两个整数nnmm,表示碱基序列的长度。 第二行包含nn个字符,表示碱基序列SS。 第三行包含mm个字符,表示碱基序列TT。 两个碱基序列的字符种类只有A,C,G,TA,C,G,T44个大写字母。

输出格式

答案只包含一行,表示补全方案的个数。

样例 #1

样例输入 #1

10 3
CTAGTAGAAG
TCC

样例输出 #1

4

提示

样例解释: TCCTCC44种补全方案(括号中字符为补全的碱基) (GA)TC(AT)C(TTC)(GA)TC(AT)C(TTC) (GA)TC(ATCTT)C(GA)TC(ATCTT)C (GA)T(CAT)C(TT)C(GA)T(CAT)C(TT)C (GATCA)TC(TT)C(GATCA)TC(TT)C

数据范围: 对于30%30\% 数据,n1000,m2n\leq 1000,m\leq 2 对于50%50\% 数据,n1000,m4n\leq 1000,m\leq 4 对于100%100\% 数据,n2000,mnn\leq 2000,m\leq n