P16448 [XJTUPC 2026] Triple Mirror: The Harmony of Repetition
题目背景
:::epigraph[------ 帕林多姆]
空白是唯一不会说谎的语言。
:::
题目描述
你正在玩一款被称为「Mirror Fragments」的游戏。在这个游戏里,你穿行于一座由镜面构筑的古老遗迹。遗迹中的铭文会在镜中发生奇异的变化。
你曾观察到一段字符序列经过镜面反射后,看到的内容会像被「展开」一样,每个字符都重复出现两次。比如,序列 $\tt{hua}$ 在镜中会呈现出 $\tt{aauuhh}$ 的形态。若从侧方同时观察镜外原物与镜中虚像,两者会前后叠加,形成 $\tt{aauuhhhua}$。这种叠加后的整体,便是该序列的完整映射。
你对这样的映射关系很感兴趣。现在给定一个长度为 $n$ 的字符串 $S=s_1s_2\cdots s_n$,请你统计其中有多少个非空子串 $T=S[l\dots r]$(其中,$S[l\dots r]=s_ls_{l+1}s_{l+2}\cdots s_r$)可以成为这样的映射的像。具体地,长度为 $m$ 的子串 $T=t_1t_2\cdots t_m$ 需要满足以下条件:
- $m$ 是 $3$ 的倍数;
- 设 $m = 3k$,则对于所有 $i=1,2,\dots,k$ 都有 $t_{2i-1}=t_{2i}=t_{3k-i+1}$。
换而言之,$T$ 必须形如:
$$a_1a_1a_2a_2a_3a_3\cdots a_{k}a_{k}a_{k}a_{k-1}a_{k-2}\cdots a_1$$
其中,$a_1, a_2, \dots, a_k$ 是某个字符序列。
请注意,对于两个子串 $S[l\dots r]=s_ls_{l+1}s_{l+2}\cdots s_r$ 和 $S[l'\dots r']=s_{l'}s_{l'+1}s_{l'+2}\cdots s_{r'}$,被视为两个不同的子串,需要被统计两次,当且仅当 $l\ne l'$ 或者 $r\ne r'$。
输入格式
输入共一行,仅包含一个字符串 $S$(字符串 $S$ 的长度 $|S|$ 满足 $1\le |S|\le 2\times 10^5$)。保证 $S$ 仅由小写拉丁字母 $\texttt{a}, \texttt{b}, \texttt{c}, \cdots, \texttt{z}$ 构成。
输出格式
输出一行,仅包含一个整数,表示满足题目条件的子串个数。