bzoj#P4163. 字符串合成
字符串合成
题目描述
给定四种对字符串 的操作:
-
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
,
代价为 。
数据规模与约定
对于 的数据,,。