atcoder#ABC175F. [ABC175F] Making Palindrome
[ABC175F] Making Palindrome
题目描述
英小文字から成る 個の文字列 があります。
高橋君はまずこれらの文字列から重複を許して合計 個以上選んだ後、選んだ文字列を好きな順番で連結することで、回文であるような文字列を作ろうとしています。
文字列 を 個使うにはコストが かかり、同じ文字列であっても使った個数の分だけコストがかかります。
上述の方法で回文を作ることのできるように文字列を選ぶ方法のうち、コストの和としてありうる値の最小値を求めてください。
また、どのように選んでも回文を作ることが不可能である場合は を出力してください。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
回文を作ることのできるように文字列を選ぶ方法のうち、コストの和としてありうる値の最小値を出力せよ。不可能である場合は を出力せよ。
题目大意
题目大意
有 个仅含小写字母的字符串 。你需要把从这些字符串中选择一些以任意顺序拼接起来,同一个字符串可以被选择多次。每选择一次 ,你都需要花费 的代价,也就是说你选择 所花费的代价为 与 被选择的次数之积。求使拼接得到的字符串为回文串所需的最小花费。若不管如何都无法拼接成回文串,输出 -1
。
数据范围:,,。
输入格式
第一行一个整数 ,接下来 行每行一个字符串 和一个整数 。
输出格式
一个整数,为最小代价或 -1
。
样例解释
样例 1:我们可以分别选择一次 abc
与 ba
,拼接得到回文串 abcba
,花费为 ,为最小值。
样例 2:选择一次 abcab
,两次 cba
,拼接得到回文串 abcabcbacba
,花费为 ,为最小值。
样例 3:选择 ab
与 cba
花费的代价比仅选择 a
更少。
样例 4:无法拼成回文串。
(翻译 by @CarroT1212)
3
ba 3
abc 4
cbaa 5
7
2
abcab 5
cba 3
11
4
ab 5
cba 3
a 12
ab 10
8
2
abc 1
ab 2
-1
提示
制約
- は英小文字から成る
Sample Explanation 1
ba
, abc
, cbaa
があります。 例えば、ba
, abc
を 個ずつ使うとコストは で、abc
, ba
の順で連結すると回文になります。 また、abc
, cbaa
を 個ずつ使うとコストは で、cbaa
, abc
の順で連結すると回文になります。 コスト 未満で回文を作ることはできないので、 を出力してください。
Sample Explanation 2
abcab
を 個、cba
を 個選んで、abcab
, cba
, cba
の順で連結すると回文になり、コストは です。
Sample Explanation 3
a
を 個だけ選んで回文とすることもできますが、ab
と cba
を選んで連結する方がコストが小さいです。
Sample Explanation 4
回文を作ることが不可能であるので、 を出力してください。