9780: 剪切线

内存限制:1024 MB 时间限制:2 S
题面:传统 评测方式:文本比较 上传者:
提交:0 通过:0

题目描述

超人气少女乐队 Mygo!!!!! 将于明天举办一场现场演出!然而,她们还未决定演出服,因此今晚她们将一
起用一块布料制作服装。一块布料可以被分成 n 个等长的部分,第 i 部分的颜色为 ai。为了简化输入,
布料将用一个只包含小写字母 a 到 z 的字符串来描述,不同的字母代表不同的颜色。
首先,她们将使用布料的一段连续部分来制作演出服,也就是说,她们将选择 l 和 r,其中
1 ≤ l ≤ r ≤ n,这将制作出长度为 r − l + 1 的演出服,演出服的第 i 部分的颜色 ci 将为 al+i−1
为了让演出更加精彩,她们认为演出服必须是美丽的。一个长度为 k 的美丽的演出服 c,是指对于所有
1 ≤ i ≤ k 都满足 ci = ck−i+1,这样演出服生动地诠释了对称之美。
现在,她们选择了一件长度大大大于于于 1 的美丽演出服制作完成,大家都满意地去睡觉了,只有 Rana 偷偷假
装自己睡着了。Rana 非常顽皮,所以她把 Soyorin 的演出服剪成了两件非空的演出服,这意味着对于一
个长度为 k 的演出服 c,她将选择 d,使得 1 ≤ d < k,并将原始演出服剪成 c[1, d] 和 c[d + 1, k] 两件,
然后她也进入了梦乡。
第二天早上,Soyorin 一觉醒来,发现演出服被剪成了两件,但已经没有时间重新制作!所以,她不得
不同时穿上两件演出服。然而,如果这两件演出服都是美丽的,她就可以假装什么都没发生。请帮助
Soyorin 计算,存在多少种使两件演出服都为美丽的情况。如果至少有一个 l、r 或 d 不同,则认为两种
情况不同。

输入格式

输入的第一行包含一个整数 n (1 ≤ n ≤ 3 · 106 ) —— 布料的长度。
第二行包含一个长度为 n 的字符串,只由小写字母 a 到 z 组成,其中第 i 个字母表示 ai,即第 i 部分
的颜色。

输出格式

输出一个整数,即有多少种情况,Soyorin的两件演出服都是美丽的。

输入样例#1 复制

4
aaab

输出样例#1 复制

4

输入样例#2 复制

20
abababbabbbbbaaaaaba

输出样例#2 复制

42

数据范围与提示

对 于 样 例 一 , 第 一 步 中 有 三 种 可 能 的 美 丽 演 出 服 的 剪 法 :aa, aa 和 aaa, 分 别 对 应
l = 1, r = 2,l = 2, r = 3 和 l = 1, r = 3。不过,b,也即 l = 4, r = 4 是不满足要求的,因为演
出服的长度必须大于 1。
现在,考虑 Rana 的 d 的选择。
• 对于 aa,只有一个可能的 d,即 d = 1,这意味着新演出服是 a 和 a,它们都是美丽的。
• 对于 aaa,当 d = 1 时,a 和 aa 都是美丽的;当 d = 2 时,aa 和 a 都是美丽的。
因此,总共有 2 × 1 + 1 × 2 = 4 种情况。