tyboj 有趣回文串

题链

分析

不妨设\(L[i]\)表示以\(i\)为开头所有右端点的和,\(R[i]\)表示以\(i\)为结尾的所有左端点的和
只需求出\(L,R\)即可
\(L[i]\)的求法和\(R[i]\)相同
所以只需要考虑\(L[i]\)的求法

先处理字符串
\(R[i]\)为最大半径

\[L[i]=\sum_{i\leq j,j-R[j]+1\leq i} \frac{j+j-i}{2} \]

\(i\)倒序枚举时,\(j-R[j]+1\leq i\)只会打破一次,拆开式子,所以用Vector维护
只需要管\(i\in odd\)\(L[i]\),时间复杂度\(O(n)\)

posted @ 2021-03-01 14:45  wwwsfff  阅读(79)  评论(0)    收藏  举报