QOJ.ac

QOJ

Time Limit: 20 s Memory Limit: 1024 MB Total points: 12

#12435. 命名妥协

Statistics

Cameron 和 Jamie 即将迎来他们的第二个孩子。他们作为父母在育儿方面已经配合得非常默契,但现在他们对一件至关重要的事情产生了分歧!Cameron 想给孩子取一个名字(字符串 $\mathbf{C}$),而 Jamie 想给孩子取另一个名字(字符串 $\mathbf{J}$)。

你需要帮助他们找到一个折中名字,使其尽可能地接近他们各自的期望。你认为可以使用编辑距离的概念来解决这个问题。两个字符串 $S_1$ 和 $S_2$ 之间的编辑距离是将 $S_1$ 转换为 $S_2$ 所需的最少操作次数,允许的操作如下:

  • 在字符串的任意位置插入一个字符。
  • 删除字符串中任意位置的一个字符。
  • 将字符串中的一个字符更改为任何其他字符。

例如,CAMERON 和 JAMIE 之间的编辑距离为 5。实现这种转换的一种 5 步方法如下:CAMERON 变为 JAMERON(更改),变为 JAMIERON(插入),变为 JAMIEON(删除),变为 JAMIEN(删除),变为 JAMIE(删除)。任何将 CAMERON 转换为 JAMIE 的转换至少需要这么多操作。

为了使折中名字 $N$ 尽可能接近父母最初的期望,你希望 $N$ 是一个非空字符串,使得 $\mathbf{C}$ 与 $N$ 之间的编辑距离以及 $\mathbf{J}$ 与 $N$ 之间的编辑距离之和尽可能小。在所有满足该条件的 $N$ 的选择中,为了确保折中方案是公平的,你必须选择一个 $N$,使得这两个编辑距离之间的差值也尽可能小。请为 Cameron 和 Jamie 找到一个折中名字。

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例由一行组成,包含两个字符串 $\mathbf{C}$ 和 $\mathbf{J}$:分别是 Cameron 和 Jamie 为孩子提议的名字。这些名字中的每一个都由大写英文字母组成。

输出格式

对于每个测试用例,输出一行包含 Case #x: y,其中 $x$ 是测试用例编号(从 1 开始),$y$ 是满足题目所述要求的一个名字。注意,$y$ 必须仅包含大写英文字母。

数据范围

时间限制:每个测试集 20 秒。 内存限制:1GB。 $1 \le T \le 100$。 $\mathbf{C} \neq \mathbf{J}$。

测试集 1(可见判定)

$1 \le \text{length of } \mathbf{C} \le 6$。 $1 \le \text{length of } \mathbf{J} \le 6$。 $\mathbf{C}$ 的第 $i$ 个字母是大写的 X、Y 或 Z。 $\mathbf{J}$ 的第 $i$ 个字母是大写的 X、Y 或 Z。

测试集 2(隐藏判定)

$1 \le \text{length of } \mathbf{C} \le 60$。 $1 \le \text{length of } \mathbf{J} \le 60$。 $\mathbf{C}$ 的第 $i$ 个字母是大写英文字母。 $\mathbf{J}$ 的第 $i$ 个字母是大写英文字母。

样例

样例输入 1

4
XYZZY ZZYZX
Y Z
YYXXYZ ZYYXXY
XZXZXZ YZ

样例输出 1

Case #1: ZZY
Case #2: Z
Case #3: ZYYXXYZ
Case #4: ZYZX

说明

上述样例符合测试集 1 的限制。另一个不符合这些限制的样例出现在本节末尾。

在样例 1 中,从 XYZZY 到 ZZY 的编辑距离为 2(删除前两个字母),从 ZZYZX 到 ZZY 的编辑距离为 2(删除最后两个字母)。XZZX 和 ZYYZY 也同样适用。没有可能的名称其编辑距离之和小于 4。

例如,ZY 到 $\mathbf{C}$ 和到 $\mathbf{J}$ 的编辑距离相同(均为 3)。然而,这些距离之和为 6,不是最小的,因此它不是一个可接受的答案。

XZZY 也是不可接受的。它到 $\mathbf{C}$ 和 $\mathbf{J}$ 的编辑距离分别为 1 和 3。这些编辑距离之和是最小的,但两者之间的差值($|1-3| = 2$)不是最小的,因为我们已经证明可以实现差值为 0。

在样例 2 中,Y 和 Z 是唯一可接受的答案。

在样例 3 中,请注意输入长度限制不适用于输出,因此所示答案在两个测试集中都是可接受的。另一个可能的答案是 YYXXY。

在样例 4 中,XZXZXZ 和 ZYZX 之间的编辑距离为 3,YZ 和 ZYZX 之间的编辑距离为 2。这些编辑距离之和为 5,它们的差值为 1;这些值对于此情况是最优的。

以下附加样例不会出现在测试集 1 中,但可能出现在测试集 2 中。

1
GCJ ABC

Case #1: GC 是可能的正确输出之一。

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.