300833: CF159D. Palindrome pairs
Memory Limit:256 MB
Time Limit:3 S
Judge Style:Text Compare
Creator:
Submit:0
Solved:0
Description
Palindrome pairs
题意翻译
给定一个长度为 N 的字符串 S,求有多少四元组 $(l1,r1,l2,r2)$ 满足 $1 \le l1 \le r1 < l2 \le r2 ≤ N$ 且 $S[l1...r1]$,$[Sl2...r2]$ 都是回文串。 $n\le 2000$题目描述
You are given a non-empty string $ s $ consisting of lowercase letters. Find the number of pairs of non-overlapping palindromic substrings of this string. In a more formal way, you have to find the quantity of tuples $ (a,b,x,y) $ such that $ 1<=a<=b<x<=y<=|s| $ and substrings $ s[a...\ b] $ , $ s[x...\ y] $ are palindromes. A palindrome is a string that can be read the same way from left to right and from right to left. For example, "abacaba", "z", "abba" are palindromes. A substring $ s[i...\ j] $ ( $ 1<=i<=j<=|s| $ ) of string $ s $ = $ s_{1}s_{2}...\ s_{|s|} $ is a string $ s_{i}s_{i+1}...\ s_{j} $ . For example, substring $ s[2...4] $ of string $ s $ = "abacaba" equals "bac".输入输出格式
输入格式
The first line of input contains a non-empty string $ s $ which consists of lowercase letters ('a'...'z'), $ s $ contains at most $ 2000 $ characters.
输出格式
Output a single number — the quantity of pairs of non-overlapping palindromic substrings of $ s $ . Please do not use the %lld format specifier to read or write 64-bit integers in С++. It is preferred to use cin, cout streams or the %I64d format specifier.
输入输出样例
输入样例 #1
aa
输出样例 #1
1
输入样例 #2
aaa
输出样例 #2
5
输入样例 #3
abacaba
输出样例 #3
36