QOJ.ac

QOJ

حد الوقت: 20 s حد الذاكرة: 1024 MB مجموع النقاط: 28

#12422. 模式匹配

الإحصائيات

许多终端使用星号()来表示“任意字符串”,包括空字符串。例如,当列出匹配 `BASH的文件时,终端可能会列出BASHBASHERBASHFUL。对于FUL,它可能会列出BEAUTIFULAWFULBASHFUL。当列出BL时,可能会列出BASHFULBEAUTIFULBULL`。

在本题中,形式化地定义:模式(pattern)是一个仅由大写英文字母和星号(*)组成的字符串,名称(name)是一个仅由大写英文字母组成的字符串。如果存在一种将模式 $p$ 中的每个星号替换为(可能为空的)字符串的方法,使得结果为名称 $m$,则称模式 $p$ 匹配名称 $m$。注意,每个星号可以被替换为不同的字符串。

给定 $N$ 个模式,你能否找到一个长度不超过 $10^4$ 的单一名称,使其同时匹配所有这些模式,或者报告这无法做到?

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例的第一行包含一个整数 $N$,表示需要同时匹配的模式数量。随后有 $N$ 行,每行包含一个字符串 $P_i$,表示第 $i$ 个模式。

输出格式

对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 1 开始),$y$ 是任何长度不超过 $10^4$ 且满足上述定义中每个 $P_i$ 均匹配 $y$ 的名称;如果不存在这样的名称,则输出 *(即仅一个星号)。

数据范围

时间限制:每个测试集 20 秒。 内存限制:1GB。 $1 \le T \le 100$。 $2 \le N \le 50$。 对于所有 $i$,$2 \le \text{length of } P_i \le 100$。 对于所有 $i$,$P_i$ 的每个字符要么是大写英文字母,要么是星号(*)。 对于所有 $i$,$P_i$ 中至少包含一个大写英文字母。

测试集 1(可见判定) 对于所有 $i$,$P_i$ 中恰好包含一个星号()。 对于所有 $i$,$P_i$ 的最左侧字符是唯一的星号()。

测试集 2(可见判定) 对于所有 $i$,$P_i$ 中恰好包含一个星号(*)。

测试集 3(可见判定) 对于所有 $i$,$P_i$ 中至少包含一个星号(*)。

样例

输入 1

2
5
*CONUTS
*COCONUTS
*OCONUTS
*CONUTS
*S
2
*XZ
*XYZ

输出 1

Case #1: COCONUTS
Case #2: *

说明

在样例 1 中,还有其他可能的答案,包括 COCOCONUTSILIKECOCONUTSCOCONUTSAREGREATCOCOANUTS 均不可接受。注意,同一个模式在测试用例中可能出现多次。

在样例 2 中,不存在可接受的名称,因此答案为 *

以下情况不会出现在测试集 1 中,但可能出现在测试集 2 或测试集 3 中:

4
H*O
HELLO*
*HELLO
HE*

HELLOHELLOGOODBYEHELLO 是可接受答案的示例。OTHELLOHELLOO 将不可接受。

2
CO*DE
J*AM

没有名称能同时匹配这两个模式,因此答案为 *

2
CODE*
*JAM

CODEJAM 是一个可接受答案的示例。

以下情况不会出现在测试集 1 或测试集 2 中,但可能出现在测试集 3 中:

2
A*C*E
*B*D*

ABCDEABUNDANCE 属于可能的可接受答案,但 BOLDFACE 不是。

2
A*C*E
*B*D

没有名称能同时匹配这两个模式,因此答案为 *

2
**Q**
*A*

QUAILAQ 在此处属于可能的可接受答案。

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.