题解:AT_abc375_d [ABC375D] ABA

十分简单的计数题。

容易发现所谓长度为 \(3\) 的回文串其实就是要找两个相同的字符。所以我们不妨对字符串的每一位分别考虑,计算以这一位为中心的回文串的个数。

对于当前的这一位,我们枚举 \(26\) 个字母,计算每个字母作为回文串两端的元素,这一位为中间的元素时对答案产生的贡献。具体的,我们对每个字母分别维护一个从前往后和从后往前的前缀和,分别设为 \(sum\)\(rsum\)。设当前为中间的这一位下标为 \(i\),由乘法原理易得字母 \(c\)\(i\) 的贡献显然就是 \(sum_{c,i-1}\cdot rsum_{c,i+1}\)

累加答案即可。

提交记录

posted @ 2024-10-13 07:11  Redamancy_Lydic  阅读(32)  评论(2编辑  收藏  举报