A. 最优前缀后缀乘积

最优前缀后缀乘积

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目内容

对于两个字符串 AABB,定义 P(A,B)P(A,B)AABB 的最长公共前缀的长度,S(A,B)S(A,B)AABB 的最长公共后缀的长度。定义相似度 M(A,B)=P(A,B)×S(A,B)M(A,B)=P(A,B)\times S(A,B)

你可以对字符串 AA 进行至多一次修改:将 AA 中的任意一个字符替换成另一个小写字母。求在所有可能的修改下,相似度 M(A,B)M(A,B) 可能达到的最大值。

字符串 AABB 的长度均满足 1A,B1051 \le |A|, |B| \le 10^5,且仅包含小写字母。

输入描述

第一行包含一个仅由小写字母组成的字符串 AA1A1051 \le |A| \le 10^5)。 第二行包含一个仅由小写字母组成的字符串 BB1B1051 \le |B| \le 10^5)。

输出描述

输出一个整数,表示能够达到的最大相似度。

样例1

输入

a
b

输出

1

说明

初始时,字符串 AABB 的最长公共前缀长度为 0(因为 a eq eq b),最长公共后缀长度也为 0,相似度 M(A,B)=0×0=0M(A,B) = 0 \times 0 = 0

AA 中的 a 修改为 b,得到 A=A' = b,此时 AA'BB 完全相同,最长公共前缀长度变为 1,最长公共后缀长度变为 1,相似度达到 1×1=11 \times 1 = 1。因此最大相似度为 1

样例2

输入

axbyc
azbwc

输出

3

说明

初始时,AABB 的最长公共前缀为 a,长度 P=1P=1;最长公共后缀为 c,长度 S=1S=1,相似度为 1×1=11 \times 1 = 1

有两种修改方式:

  • 修改前缀冲突位置:将 AA 中第一个不匹配字符 x 改为 z,得到 A=A' = azbyc。此时 AA'BB 的前 33 个字符 a, z, b 均匹配,P=3P=3;后缀仍为 cS=1S=1,相似度为 3×1=33 \times 1 = 3
  • 修改后缀冲突位置:将 AA 中最后一个不匹配字符 y 改为 w,得到 A=A' = axbwc。此时前缀为 aP=1P=1;后缀 c, b, w 均匹配,S=3S=3,相似度为 1×3=31 \times 3 = 3

综上,最大相似度为 3

样例3

输入

hello
hello

输出

25

说明

AABB 完全相同,最长公共前缀长度为 5,最长公共后缀长度也为 5,相似度为 5×5=255 \times 5 = 25

由于可以不进行修改,且任何修改都会破坏当前的完全匹配,因此最大相似度即为 25

秋招模拟赛第41场|2023.08.27-字节跳动秋招第二场

Not Attended
Status
Done
Rule
IOI
Problem
4
Start at
2023-9-8 19:00
End at
2023-9-8 21:00
Duration
2 hour(s)
Host
Partic.
38