QOJ.ac

QOJ

Time Limit: 60 s Memory Limit: 1024 MB Total points: 42

#12443. 全部替换

Statistics

Banana Rocks Inc 即将推出一项革命性的技术,用于执行常见的编辑操作“全部替换”。他们的实现会将给定文本中出现的每一个字符替换为另一个字符。(如果该字符未在文本中出现,则操作会执行但不会产生任何效果。)

例如,如果初始文本为 CODEJAMWORLDFINALS,执行将 A 替换为 O 的操作,新文本将变为 CODEJOMWORLDFINOLS。如果在此结果上执行另一个将 O 替换为 Y 的操作,最终文本将变为 CYDEJYMWYRLDFINYLS

遗憾的是,该实现尚不完整,因此它只能执行来自 $N$ 个字符对列表中的替换。此外,即使实现了将特定字符 $c_1$ 替换为另一个字符 $c_2$ 的操作,将 $c_2$ 反向替换为 $c_1$ 的操作也可能并未实现。

你需要尝试所有已实现的替换。给定一个初始字符串 $S$ 作为初始文本。你可以按顺序执行任意次数的替换:第一次替换在 $S$ 上执行,第 $(i+1)$ 次替换在执行第 $i$ 次替换的结果上执行。唯一的限制是每个已实现的替换在此过程中必须至少执行一次。对于每个替换可以执行的次数没有上限。

允许使用的字符为十进制数字以及大小写英文字母。在本题中,同一字母的大小写形式被视为不同的字符。

请问在执行最后一次替换后,结果文本中可能出现的最大唯一字符数量是多少?

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例包含两行。第一行包含一个字符串 $S$ 和一个整数 $N$:初始文本以及已实现替换的数量。第二行包含 $N$ 个双字符字符串 $R_1, R_2, \dots, R_N$,表示已实现的替换。$A_i$ 和 $B_i$ 分别是 $R_i$ 的第一个和第二个字符。第 $i$ 个已实现的替换对应于将所有出现的 $A_i$ 替换为 $B_i$。

输出格式

对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 1 开始),$y$ 是在将所有已实现的替换各执行一次或多次(以某种顺序)后,结果文本中可能出现的最大唯一字符数量。

数据范围

$1 \le T \le 100$。 $2 \le \text{length of } S \le 1000$。 $S$ 中的每个字符均为大写或小写英文字母或十进制数字。 $A_i$ 为大写或小写英文字母或十进制数字。 $B_i$ 为大写或小写英文字母或十进制数字。 $A_i \neq B_i$。 $(A_i, B_i) \neq (A_j, B_j)$,对于所有 $i \neq j$(每个替换都是唯一的)。

子任务 1

$2 \le N \le 62$。 $B_i \neq B_j$,对于所有 $i \neq j$。

子任务 2

$2 \le N \le 62 \times 61$。

样例

样例输入 1

4
CODEJAMWORLDFINALS 2
AO OY
xyz 3
xy zx yz
CJ 4
20 2O HC KS
AB 2
Ab bA

样例输出 1

Case #1: 14
Case #2: 2
Case #3: 2
Case #4: 2

说明

上述样例满足子任务 1 的限制。以下是一个不满足该限制的额外样例:

1
1234 5
12 2X X3 31 X2

该样例的正确输出为 Case #1: 4

在这个额外样例中,一种可能性是按以下顺序执行替换:X3 2X X2 2X 12 31。此过程从 $S$ 开始,经过以下字符串:1234 1234 1X34 1234 1X34 2X34 2X14

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.