#bzoj4163. 字符串合成
字符串合成
题目描述
给定四种对字符串 的操作:
-
push_back(P):在 后连接一个字符串 ,即 ,代价为 ; -
push_front(P):在 前连接一个字符串 ,即 ,代价为 ; -
symmetry_back():将 翻转后连接在 之后,即 ,代价为 ; -
symmetry_front():将 翻转后连接在 之前,即 ,代价为 ;
给定一个目标串 ,要求你通过上述四种操作,用最少的代价合成出目标串,初始只有一个空串。
输入格式
第一行一个正整数 ,表示数据组数。
接下来 行,每组数据一行,为字符串 。
输出格式
每组数据一行输出一个正整数表示最少的代价。
7
c
aaaab
bbaaaacc
ababa
abba
baab
aaabacdbbdcabaaaaaaaaaaaab
1
4
7
5
3
3
18
样例解释
{} -> c,代价为 ;
{} -> aa -> aaaa -> aaaab,代价为 ;
{} -> aa -> aaaa -> aaaacc -> bbaaaac,代价为 ;
{} -> ababa,代价为 ;
{} -> ab -> abba,代价为 ;
{} -> ab -> baab,代价为 ;
{} -> aaa -> aaaaaa -> baaaaaa -> baaaaaaaaaaaab -> aaabacdbbdcabaaaaaaaaaaaab,
代价为 。
数据规模与约定
对于 的数据,,。