QOJ.ac

QOJ

时间限制: 1 s 内存限制: 1024 MB 总分: 100

#3513. 评估基因组

统计

世界正处于灭绝的边缘。一种变异病毒威胁着要摧毁所有生物。作为最后的希望,一个由超级聪明的科学家组成的团队(当然也包括你)目前正在研发抗病毒药物。不幸的是,你们团队无法及时分析 DNA。他们测序了 $n$ 段病毒 DNA,需要将它们与 $n$ 条现有的抗病毒药物链进行匹配。作为算法专家,你需要实现一个专门的程序来解决这个问题。你的方法必须足够快——时间不多了!

首先,你需要确定每个 DNA 序列的重复得分。序列 $s$ 的重复得分等于最短序列 $u$ 的长度,使得 $s$ 等于 $u$ 的 $k$ 倍重复,其中 $k$ 为某个正整数。例如,ATGATG 的重复得分是 3,因为它可以通过重复 ATG 两次得到。另一方面,ATATA 的重复得分是 5,因为它不能由任何真子串重复得到。

在获得所有序列的得分后,你需要将 $n$ 条抗病毒序列与 $n$ 条病毒序列进行匹配,以使病毒造成的损害最小化。当两个序列匹配时,病毒造成的损害等于两个重复得分之差的平方。例如,将抗病毒序列 ATGATG 与病毒序列 ATATA 匹配会造成 $(3 - 5)^2 = 4$ 个单位的损害。

如果你以最优方式匹配这些 DNA 序列,那么所有匹配对的病毒造成的总损害最小是多少?

输入格式

输入包含: 一行包含一个整数 $n$ ($1 \le n \le 50$),表示病毒和抗病毒 DNA 序列的数量。 $n$ 行,每行一个病毒 DNA 序列。 * $n$ 行,每行一个抗病毒 DNA 序列。

每个 DNA 序列都是一个非空字符串,长度不超过 250,由小写字母 a-z 和大写字母 A-Z 组成。

输出格式

输出一个整数,即最小总损害。

样例

样例输入 1

2
TTTTTT
TATG
TATATA
AAAGAAAG

样例输出 1

1

样例输入 2

3
abcdef
aaa
bab
AbAb
xyzxyz
X

样例输出 2

10

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.