AT_abc261_g.[ABC261G] Replace

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定两个仅由小写英文字母组成的字符串 SS 和 TT。

高桥君从字符串 SS 开始,可以任意多次重复选择以下 KK 种操作中的一种进行操作。
第 ii 种操作的形式如下:

支付 11 的代价。然后,如果字符串中包含字符 CiC_i,则选择其中一个 CiC_i,将其替换为字符串 AiA_i。如果不包含,则什么也不做。

请你求出将字符串 SS 变为与 TT 完全相同所需的最小总代价。如果无法变为 TT,则输出 −1-1。

输入格式

输入以如下格式从标准输入读入。

SS TT
KK
C1C_1 A1A_1
C2C_2 A2A_2
⋮\vdots
CKC_K AKA_K

输出格式

输出将 SS 变为 TT 所需的最小总代价。如果无法变为 TT,则输出 −1-1。

输入输出样例

  • 输入#1

    ab
    cbca
    3
    a b
    b ca
    a efg

    输出#1

    4
  • 输入#2

    a
    aaaaa
    2
    a aa
    a aaa

    输出#2

    2
  • 输入#3

    a
    z
    1
    a abc

    输出#3

    -1

说明/提示

限制条件

  • 1≤∣S∣≤∣T∣≤501 \leq |S| \leq |T| \leq 50
  • 1≤K≤501 \leq K \leq 50
  • CiC_i 是 a、b、…\ldots、z 中的某一个字符
  • 1≤∣Ai∣≤501 \leq |A_i| \leq 50
  • SS、TT、AiA_i 均为仅由小写英文字母组成的字符串
  • 将 CiC_i 视为长度为 11 的字符串时,有 Ci≠AiC_i \neq A_i
  • 所有 (Ci,Ai)(C_i, A_i) 均不同

样例解释 1

高桥君从 S=S=ab 开始,可以通过如下 44 次操作将其变为 T=T=cbca:

  • 选择 ab 的第 11 个字符 a,用 b 替换(第 11 种操作)。字符串变为 bb。
  • 选择 bb 的第 22 个字符 b,用 ca 替换(第 22 种操作)。字符串变为 bca。
  • 选择 bca 的第 11 个字符 b,用 ca 替换(第 22 种操作)。字符串变为 caca。
  • 选择 caca 的第 22 个字符 a,用 b 替换(第 11 种操作)。字符串变为 cbca。
    每次操作的代价为 11,因此总代价为 44,且这是最小值。

样例解释 2

a \to aaa \to aaaaa,总代价为 22,且这是最小值。

样例解释 3

无论如何操作,都无法将 S=S=a 变为 T=T=z。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页