#P12977. 泪雨 Namid[A] me

    ID: 12711 Type: RemoteJudge 1000~1500ms 512MiB Tried: 0 Accepted: 0 Difficulty: 5 Uploaded By: Tags>字符串Manacher 算法

泪雨 Namid[A] me

题目背景

涙目 変わらずの雨模様
泪眼不变的烟雨迷蒙
その夢の淵ギリギリで
在那梦的深渊倾盆而下
—— ヒトリエ《Namid[A]me》

最终,只剩我一人了。

题目描述

给定小写英文字母和 ? 组成的字符串 ss

“泪雨”定义为这样的串:这是一个回文串,并且 ? 的个数大于等于小写英文字符的个数。

请对于是“泪雨”的 ss 的所有子串,求出它们问号位置的和之和。(位置下标从 11 开始)

形式化题意:定义:

$$f(l,r)= \sum_{i=l}^{r} [s_i=\texttt{?}]\cdot i \\ g(l,r)=\big[\sum_{i=l}^r{[s_i=\texttt{?}] \geq} \frac{r-l+1}{2}\big]\big[ s[l,r]\text{ is a palindrome} \big] $$

请你求出 l=1nr=lng(l,r)f(l,r)\sum_{l=1}^{n} \sum_{r=l}^{n} g(l,r)\cdot f(l,r),其中 n=sn=\lvert s\rvert

输入格式

第一行一个正整数 nn,表示 ss 的长度 nn

第二行输入仅由小写英文字母和问号组成的字符串 ss

输出格式

一行一个正整数,表示答案。

4
a??a
15

10
?a?aa?a?a?
115

提示

样例解释: 样例 11 中,[2,2],[3,3],[1,4],[2,3][2,2],[3,3],[1,4],[2,3] 都是符合要求的回文串,并且所求的问号位置之和为 2+3+(2+3)+(2+3)=152+3+(2+3)+(2+3)=15

以下是数据范围。

Subtask nn 特殊性质 分值 子任务依赖
11 500\leq 500 1010 -
22 7000\leq 7000 1515 11
33 2×106\leq 2\times 10^6 ss 中仅有 ? 55 -
44 字符串随机生成 1010 11
55 ss 中有且仅有两种字符 -
66 3×105\leq 3\times 10^5 1515 1,21,2
77 2×106\leq2\times 10^6 161\sim 6
88 5×106\leq 5\times10^6 timelimit=1.5s\text{timelimit}=1.5s 2020 171\sim 7

对于 100%100\% 的数据满足 1n5×1061\leq n\leq 5\times 10^6,且 ss 仅包含小写英文字母和 ?

除了 subtask 8\text{subtask 8} 之外,时限皆为 1s1s

时间限制已开到了 std 的 2 倍以上,空间限制开到了 std 的 1.25 倍以上,但仍需 注意程序的运行时空常数