A94828.论文查重
普及+/提高
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
教务处最近怀疑有两名学生(学生 A 和学生 B)在期末论文中存在抄袭行为。你作为助教,拿到了这两名学生的论文原稿,它们分别表示为字符串 A 和字符串 B(仅包含小写英文字母)。
为了量化抄袭的程度,我们定义两个片段(字符串)C 和 D 的相似度得分 S(C,D) 如下:
S(C,D)=4⋅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≤n,m≤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
说明/提示
提示
样例 1 解释
从 A 中选取子串 C="abb",从 B 中选取子串 D="abab"。
它们的最长公共子序列是 "abb",长度为 3。
得分计算:4×3−∣3∣−∣4∣=12−3−4=5。
数据范围
- 对于 100% 的数据:1≤n,m≤5000。