P3649 [APIO2014]回文串

    • 1.1K通过
    • 2.8K提交
  • 题目提供者 洛谷
  • 评测方式 云端评测
  • 标签 后缀数组,SA 后缀自动机,SAM 回文自动机PAM 字符串 概率论,统计 APIO 2014 高性能
  • 难度 省选/NOI-
  • 时空限制 1000ms / 128MB

题解

  • 提示:收藏到任务计划后,可在首页查看。
  • 体验新版界面

    最新讨论 显示

    推荐的相关题目 显示

    题目描述

    给你一个由小写拉丁字母组成的字符串 $s$。我们定义 $s$ 的一个子串的存在值为这个子串在 $s$ 中出现的次数乘以这个子串的长度。

    对于给你的这个字符串 $s$,求所有回文子串中的最大存在值。

    输入输出格式

    输入格式:

    一行,一个由小写拉丁字母(a~z)组成的非空字符串 $s$。

    输出格式:

    输出一个整数,表示所有回文子串中的最大存在值。

    输入输出样例

    输入样例#1: 复制
    abacaba
    
    输出样例#1: 复制
    7
    
    输入样例#2: 复制
    www
    输出样例#2: 复制
    4

    说明

    【样例解释1】

    用 $\lvert s \rvert$ 表示字符串 $s$ 的长度。

    一个字符串 $s_1 s_2 \dots s_{\lvert s \rvert}$ 的子串是一个非空字符串 $s_i s_{i+1} \dots s_j$,其中 $1 \leq i \leq j \leq \lvert s \rvert$。每个字符串都是自己的子串。

    一个字符串被称作回文串当且仅当这个字符串从左往右读和从右往左读都是相同的。

    这个样例中,有 $7$ 个回文子串 a,b,c,aba,aca,bacab,abacaba。他们的存在值分别为 $4, 2, 1, 6, 3, 5, 7$。

    所以回文子串中最大的存在值为 $7$。

    第一个子任务共 8 分,满足 $1 \leq \lvert s \rvert \leq 100$。

    第二个子任务共 15 分,满足 $1 \leq \lvert s \rvert \leq 1000$。

    第三个子任务共 24 分,满足 $1 \leq \lvert s \rvert \leq 10000$。

    第四个子任务共 26 分,满足 $1 \leq \lvert s \rvert \leq 100000$。

    第五个子任务共 27 分,满足 $1 \leq \lvert s \rvert \leq 300000$。

    提示
    标程仅供做题后或实在无思路时参考。
    请自觉、自律地使用该功能并请对自己的学习负责。
    如果发现恶意抄袭标程,将按照I类违反进行处理。