SZTG-L-CF159D. Palindrome pairs

提交1 通过1
通过率100%
时间限制3000ms
内存限制256MiB

题目描述

题目描述

给定一个非空字符串 ss,该字符串由小写字母组成。请你计算该字符串中不重叠的回文子串对的数量。

更正式地说,你需要求出四元组 (a,b,x,y)(a, b, x, y) 的个数,使得 1≤a≤b<x≤y≤∣s∣1 \le a \le b < x \le y \le |s|,并且子串 s[a...b]s[a...b] 与 s[x...y]s[x...y] 均为回文串。

回文串是指正着读和反着读都相同的字符串。例如,"abacaba"、"z"、"abba" 都是回文串。

字符串 s[i...j]s[i...j](1≤i≤j≤∣s∣1 \le i \le j \le |s|)是字符串 s=s1s2...s∣s∣s = s_1s_2...s_{|s|} 的一个子串,表示 sisi+1...sjs_is_{i+1}...s_j。例如,字符串 s=s = "abacaba" 的子串 s[2...4]s[2...4] 为 "bac"。

输入格式

输入的第一行包含一个非空字符串 ss,由小写字母('a' 到 'z')组成。

输出格式

输出一个整数,表示字符串 ss 中所有不重叠回文子串对的数量。

请不要在 C++ 中使用 %lld 格式说明符进行 64 位整数的输入输出。推荐使用 cin、cout 流或 %I64d 格式说明符。

aa
1
aaa
5
abacaba
36

说明 / 提示

由 ChatGPT 5 翻译

数据范围

ss 最多包含 20002000 个字符。