[蓝桥杯 2015 国 AC] 切开字符串

Luogu
IDLGP8631
Time1000ms
Memory512MB
DifficultyP6
2015枚举前缀和Manacher 算法蓝桥杯国赛
Pear 有一个字符串,不过他希望把它切成两段。 这是一个长度为 $N$($ \le 10^5$)的字符串。 Pear 希望选择一个位置,把字符串不重复不遗漏地切成两段,长度分别是 $t$ 和 $N-t$(这两段都必须非空)。 Pear 用如下方式评估切割的方案: 定义“正回文子串”为:长度为奇数的回文子串。 设切成的两段字符串中,前一段中有 $A$ 个不相同的正回文子串,后一段中有 $B$ 个不相同的非正回文子串,则该方案的得分为 $A \times B$。 注意,后一段中的 $B$ 表示的是:“ ... 非正回文 ... ”,而不是:“ ... 正回文 ... ”。 那么所有的切割方案中,$A \times B$ 的最大值是多少呢? ## Input 输入第一行一个正整数 $N$($ \le 10^5$) 接下来一行一个字符串,长度为 $N$。该字符串仅包含小写英文字母。 ## Output 一行一个正整数,表示所求的 $A \times B$ 的最大值。 [samples] ## Note 对于 $20\%$ 的数据,$N \le 100$。 对于 $40\%$ 的数据,$N \le 1000$。 对于 $100\%$ 的数据,$N \le 10^5$。 时限 1 秒, 512M。蓝桥杯 2015 年第六届国赛
Samples
Input #1
10
bbaaabcaba
Output #1
38
API Response (JSON)
{
  "problem": {
    "name": "[蓝桥杯 2015 国 AC] 切开字符串",
    "description": {
      "content": "Pear 有一个字符串,不过他希望把它切成两段。 这是一个长度为 $N$($ \\le 10^5$)的字符串。 Pear 希望选择一个位置,把字符串不重复不遗漏地切成两段,长度分别是 $t$ 和 $N-t$(这两段都必须非空)。 Pear 用如下方式评估切割的方案: 定义“正回文子串”为:长度为奇数的回文子串。 设切成的两段字符串中,前一段中有 $A$ 个不相同的正回文子串,后一段中有 $",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P6"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP8631"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Pear 有一个字符串,不过他希望把它切成两段。\n\n这是一个长度为 $N$($ \\le 10^5$)的字符串。\n\nPear 希望选择一个位置,把字符串不重复不遗漏地切成两段,长度分别是 $t$ 和 $N-t$(这两段都必须非空)。\n\nPear 用如下方式评估切割的方案:\n\n定义“正回文子串”为:长度为奇数的回文子串。\n\n设切成的两段字符串中,前一段中有 $A$ 个不相同的正回文子串,后一段中有 $...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments