T1: 其实就是个模拟。。。 细节蛮多的
T2: 统计一下f[i],g[i]分别表示以i为右端点/左端点的回文串的个数,(ans=sum f[i]*g[i+1]) manacher跑一下,然后差分的加一下等差数列就行了
T3: 对于(w_{i,j} + w_{j,i})建一个点, 对于每个位置建一个点,代价为 (−a) 对于每个字符建一个点,代价为 (−b + a) 一类点连向二类点,二类点连向三类点 最大权闭合图