题库练习 论文查重
← 上一题 下一题 →

A6968 | 论文查重

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

教务处最近怀疑有两名学生(学生 A 和学生 B)在期末论文中存在抄袭行为。你作为助教,拿到了这两名学生的论文原稿,它们分别表示为字符串 $A$ 和字符串 $B$(仅包含小写英文字母)。

为了量化抄袭的程度,我们定义两个片段(字符串)$C$ 和 $D$ 的**相似度得分** $S(C, D)$ 如下:
$$S(C, D) = 4 \cdot LCS(C, D) - |C| - |D|$$

其中:

- $LCS(C, D)$ 表示字符串 $C$ 和 $D$ 的**最长公共子序列**(Longest Common Subsequence)的长度。
- $|C|$ 和 $|D|$ 分别表示字符串 $C$ 和 $D$ 的长度。

教务处认为抄袭通常发生在论文的某些段落中,因此我们只关心原论文的**子串**(Substring)。
请你分别在 $A$ 中选取一个子串 $C$,在 $B$ 中选取一个子串 $D$,使得它们的**相似度得分** $S(C, D)$ 最大。

请输出这个最大的相似度得分。

**注意区分:**

- **子串 (Substring)**:必须是原字符串中连续的一段字符(例如 "bc" 是 "abcd" 的子串)。
- **子序列 (Subsequence)**:可以是原字符串中删除若干字符后剩下的序列,保持相对顺序但不一定连续(例如 "bd" 是 "abcd" 的子序列)。

输入格式

第一行包含两个正整数 $n$ 和 $m$ ($1 \leq n, m \leq 5000$),分别表示字符串 $A$ 和字符串 $B$ 的长度。

第二行包含一个长度为 $n$ 的字符串,表示学生 A 的论文。

第三行包含一个长度为 $m$ 的字符串,表示学生 B 的论文。

字符串均由小写英文字母组成。

输出格式

输出一个整数,表示在所有可能的子串对 $(C, D)$ 中,能够获得的最大相似度得分。

输入输出样例

输入 #1
4 5
abba
babab
输出 #1
5
输入 #2
8 10
bbbbabab
bbbabaaaaa
输出 #2
12
输入 #3
7 7
uiibwws
qhtkxcn
输出 #3
0
C++ 编辑器
输入
输出