A94828.论文查重

普及+/提高

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

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

为了量化抄袭的程度,我们定义两个片段(字符串)CCDD相似度得分 S(C,D)S(C, D) 如下:

S(C,D)=4LCS(C,D)CDS(C, D) = 4 \cdot LCS(C, D) - |C| - |D|

其中:

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

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

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

注意区分:

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

输入格式

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

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

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

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

输出格式

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

输入输出样例

  • 输入#1

    4 5
    abba
    babab

    输出#1

    5
  • 输入#2

    8 10
    bbbbabab
    bbbabaaaaa

    输出#2

    12
  • 输入#3

    7 7
    uiibwws
    qhtkxcn

    输出#3

    0

说明/提示

提示

样例 1 解释

AA 中选取子串 C="abb"C = \text{"abb"},从 BB 中选取子串 D="abab"D = \text{"abab"}
它们的最长公共子序列是 "abb"\text{"abb"},长度为 3。
得分计算:4×334=1234=54 \times 3 - |3| - |4| = 12 - 3 - 4 = 5

数据范围

  • 对于 100%100\% 的数据:1n,m50001 \le n, m \le 5000
首页