atcoder#ABC261G. [ABC261G] Replace
[ABC261G] Replace
题目描述
英小文字のみからなる つの文字列 が与えられます。
高橋君は文字列 から始めて、 次の 種類の操作のうち つを選んで行う事を 好きなだけ繰り返す事ができます。
番目の操作は次の形で与えられます。
コストを 支払う。 その後、文字列中に文字 が含まれるとき、そのうちの つを選び、文字列 に置き換える。 含まれないならば何も行わない。
文字列を と一致させるために必要な最小コストを求めてください。 ただし、 と一致させることが不可能な場合は を出力してください。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
を と一致させるために必要な最小コストを出力せよ。 ただし、 と一致させることが不可能な場合は を出力せよ。
题目大意
先给定两个字符串 和 ,并给定 种操作,第 个操作可以把 中的字符 替换成字符串 。你的目标就是使用若干次操作,使得 变成 .
所有涉及字母均为小写字母。
数据范围
ab
cbca
3
a b
b ca
a efg
4
a
aaaaa
2
a aa
a aaa
2
a
z
1
a abc
-1
提示
制約
- は
a
,b
,,z
のいずれか - は英小文字のみからなる文字列
- を長さ の文字列としてみた時、
- はすべて異なる。
Sample Explanation 1
高橋君は ab
から始めて、次のように 回操作を行う事で、 cbca
を作ることができます。 - ab
の 文字目 a
を選んで b
に置き換える ( 番目の操作) 。文字列は bb
となる。 - bb
の 文字目 b
を選んで ca
に置き換える ( 番目の操作) 。文字列は bca
となる。 - bca
の 文字目 b
を選んで ca
に置き換える ( 番目の操作) 。文字列は caca
となる。 - caca
の 文字目 a
を選んで b
に置き換える ( 番目の操作) 。文字列は cbca
となる。 各操作においてコストが かかるため、必要なコストは となり、このときが最小です。
Sample Explanation 2
a
aaa
aaaaa
とした時、必要なコストは となり、 このときが最小です。
Sample Explanation 3
どのように操作を行っても、a
から z
を作る事は出来ません。