QOJ.ac

QOJ

実行時間制限: 2 s メモリ制限: 2048 MB 満点: 100

#2273. 后缀可能包含前缀

統計

你正在玩一个关于字符的游戏。游戏开始时,会给出一个由小写字母组成的字符串,称为目标字符串(target string)。每位玩家提交一个指定长度的、由小写字母组成的字符串,称为子弹字符串(bullet string)。得分最高的玩家获胜。

子弹字符串的得分是其所有后缀得分的总和。当子弹字符串为 “$b_1b_2 \dots b_n$” 时,其从第 $k$ 个字符开始的后缀 $s_k$(即 “$b_k b_{k+1} \dots b_n$”)的得分定义为该后缀与目标字符串的最长公共前缀的长度。也就是说,对于目标字符串 “$t_1t_2 \dots t_m$”,当 $t_j = b_{k+j-1}$ 对所有 $1 \le j \le p$ 成立,且满足 $p = m$、$k + p - 1 = n$ 或 $t_{p+1} \neq b_{k+p}$ 其中之一时,$s_k$ 的得分为 $p$。

你必须不惜一切代价赢得今天的比赛,因为 Alyssa 答应与获胜者约会!比赛即将开始。请尽快编写一个程序,计算出对于给定的目标字符串和子弹字符串长度,所能达到的最高得分。

输入格式

输入包含单组测试数据,共两行。第一行包含一个非空的目标字符串,长度不超过 2000 个小写字母。第二行包含子弹字符串的长度,为一个不超过 2000 的正整数。

输出格式

输出对于给定的目标字符串和子弹字符串长度,所能达到的最高得分。

样例

样例输入 1

ababc
6

样例输出 1

10

样例输入 2

aabaacaabaa
102

样例输出 2

251

说明

对于第一个样例,“ababab” 是最佳的子弹字符串。在其六个后缀中,“ababab”、“abab” 和 “ab” 分别获得 4、4 和 2 分,总得分为 10。子弹字符串 “ababca” 看起来很有希望,但其后缀 “ababca”、“abca” 和 “a” 分别获得 5、2 和 1 分,总得分仅为 8。

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.