100 #P1462. *【EXKMP / Manacher】回文串

*【EXKMP / Manacher】回文串

题面重修 by hansang

题解 by hansang

【题意】

给出 2626 个字母所代表的权值,和一个字符串,要求把字符串分成两段(每一段长度至少为 11,也就是必须要有字符)。

假如这一段子串是一个回文串,那么就加上该串所有字符权值之和,求最大的权值和。

【输入格式】

输入一个整数 TT,表示数据组数

每组数据第一行输入 2626 个数,表示 2626 个字母的权值 (1num100)(1 \le num \le 100)

第二行输入一个字符串(保证字符串内全是小写字母, 2Si.lenth5000002 \le S_i.{lenth} \le 500000

保证 i=1TSi.lenth1000000\sum_{i=1}^{T}S_i.lenth \le 1000000

【输出格式】

输出每组数据的最大权值和

2
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
aba
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
acacac
1
6