QOJ.ac

QOJ

実行時間制限: 2.0 s メモリ制限: 256 MB 満点: 100

#15910. 单词方程

統計

给定一个文本 $T$ 和一个模式串 $P$。你需要检查是否可以通过删除 $T$ 中的某些字母,使得剩余的符号恰好构成 $P$。例如,单词 programming 可以通过部分删除得到 pong、program 或 roaming(但不能得到 map,因为字母必须保持原有的顺序)。这两个单词都仅由小写英文字母组成。

这里有一个特殊之处:文本 $T$ 是由一组方程编码的。这些方程使用特殊符号(每个符号由一个大写字母组成的单词表示),每个符号编码了字母表 $\{a, \dots, z\}$ 上的某个单词。每个方程的形式如下: $A = \text{字母表 } \{a, \dots, z\} \text{ 上的一个单词}$ 或者 $A = B + C$ 其中 $A, B, C$ 可以是任何特殊符号,而 $+$ 号表示单词的连接。该系统满足: 无歧义性(unambiguous)—— 对于固定的符号 $A$,左侧为 $A$ 的方程有且仅有一个。 无环性(acyclic)—— 如果你从任何符号 $A$ 开始,并根据方程进行替换(用右侧替换左侧),你永远无法再次得到包含 $A$ 的表达式。

这样的系统总是有一个唯一的解。例如,在以下系统中: START = FIRST + SECND FIRST = D + E SECND = F + E D = good E = times F = bad

符号 START 编码了单词 goodtimesbadtimes。 给定一个单词 $P$ 作为模式串,一个方程组,以及该系统的一个特定起始符号 $S$,确定模式串 $P$ 是否出现在由 $S$ 编码的单词中。

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是各测试用例的描述: 每个测试用例的第一行包含一个整数 $k$ ($1 \leqslant k \leqslant 500$),表示方程的数量。接下来的 $k$ 行包含方程。每个方程具有题目描述中给出的两种形式之一,单词、加号和等号之间用空格分隔。每个单词(包括符号名称)的长度至少为 1,至多为 5。 下一行包含一个单独的特殊符号(一个大写字母组成的单词),最后一行包含一个非空单词,由最多 2 000 个小写字母组成。它们分别是起始符号和要查找的模式串。

输出格式

按输入中出现的顺序输出各测试用例的答案。对于每个测试用例,在单独的一行中打印答案:如果模式串出现在给定的编码单词中,则输出 YES,否则输出 NO。

样例

输入 1

1
6
START = FIRST + SECND
FIRST = D + E
SECND = F + E
D = good
E = times
F = bad
START
debate

输出 1

YES

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.