C. 基因重组

    传统题 1000ms 256MiB

基因重组

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

某种生物的基因序列由 01 组成,可以看成是一个 01 字符串。

现在,你得到了两个基因序列 A 和 B,长度分别为 n 和 m。你想要把它们进行重组,得到一个新的基因序列 C。重组方式是:

每次从 A 和 B 中任选一个,从其尾部取走一个字符,将其拼接到 C 的末尾。最后就会得到一个长度为 n+m 的字符串,即 C。

不同的操作方式,可能会得到相同的基因序列。

举个例子,假如 A = 0, B = 10,则你有可能得到两种基因序列: 001(有两种操作方式),或 010(有一种操作方式)。

假设最后得到的不同的基因序列有 k 种,得到其中第 i 种序列的操作方式有 aia_i 种,请你输出 i=1kai2\sum \limits_{i=1}^{k} a_i^2 的值。

答案可能很大,你需要将其对 (109+7)(10^9+7) 取模后输出。

输入格式

第一行:两个整数 n,mn, m

第二行:一个长度为 nn 的字符串 A

第三行:一个长度为 mm 的字符串 B

输出格式

一个整数,表示答案对 (109+7)(10^9+7) 取模的结果。

样例输入 #1

1 2
0
10

样例输出 #1

5

数据范围

  • 30%30\% 的数据, 1n,m121 ≤ n,m ≤ 12
  • 100%100\% 的数据, 1n,m5001 ≤ n,m ≤ 500,保证 A、B 中只包含 01

2026-02-25

未参加
状态
已结束
规则
OI
题目
4
开始于
2026-2-25 8:00
结束于
2026-2-25 12:00
持续时间
4 小时
主持人
参赛人数
18