首页 > 试题广场 >

回文串的交集

[编程题]回文串的交集

给一个长为 的只含小写字母的字符串

设总共有 个回文连续子串

在这 个子串中任选不同的两个,有公共部分的方案数

答案对 1000000007 取模


输入描述:
第一行一个正整数n
第二行一个长为n的字符串


输出描述:
输出一个整数表示答案
示例1

输入

4
babb

输出

6

说明

样例解释:
有如下所有回文连续子串
"b"—[1,1]
"bab"—[1,3]
"a"—[2,2]
"b"—[3,3]
"bb"—[3,4]
"b"—[4,4]
有如下6对有交的子串
1. [1,1]和[1,3]
2. [1,3]和[2,2]
3. [1,3]和[3,3]
4. [1,3]和[3,4]
5. [3,3]和[3,4]
6. [3,4]和[4,4]

备注:
对于100%的数据,有n<=2000000
头像 张广文
发表于 2020-03-23 20:17:43
include<bits/stdc++.h> using namespace std;const int maxn=4e6+50;char s[maxn];char ss[maxn];int p[maxn];long long cnt1[maxn];long long cnt2[maxn 展开全文