QOJ.ac

QOJ

حد الوقت: 30.0 s حد الذاكرة: 256 MB مجموع النقاط: 100

#17371. 变形很有趣

الإحصائيات

Morphic 是一种生长极快的树,能给它的主人带来快乐。它只有一根树干,由若干个细胞一个叠一个地堆叠而成。每个细胞具有 $n$ 种可能颜色之一,这些颜色决定了它在夜间(无人看管时)的变异方式。园艺家们用前 $n$ 个小写英文字母来表示这些颜色,并且确切地知道每种颜色的细胞会分裂成多少个细胞以及这些细胞的颜色。实际上,他们只需用 $n$ 个非空单词记录下这些知识,每个单词代表分裂后产生的颜色序列。

Morphic 的种子只有一个颜色为 a 的细胞,并牢牢地扎根在泥土中。只要 Morphic 还活着,每天晚上它所有的细胞都会根据上述规则同时发生变异,由于每个新细胞的大小都与原细胞相同,这可能会导致指数级增长。例如,如果规则规定 a 变为 abb 变为 ca,那么经过两个晚上后,种子将演变成由 4 个细胞组成的树干:abca

因此,Morphic 的顶部通常隐藏在云雾之中。判断它是否还活着的唯一方法是检查树干可见部分的颜色是否在发生变化。为了做到这一点,人们可以建造一座极高(但高度仍为常数)的塔,并从塔顶观察树干的某个固定片段。

正如你很容易看出的那样,要么对于某个固定的 $k$,观察自底向上的前 $k$ 个细胞就足够了;要么无论塔建得多高,你都无法确切地知道 Morphic 是否已经死亡。后一种情况发生在:对于任意的 $k$,规则都会导致第 $k$ 个细胞最终停止改变颜色,即使树木仍然存活且在不断变异。

为了避免浪费资金建造如此巨大的塔,你需要编写一个程序来确定是否可以监测 Morphic 的健康状况。

输入格式

输入包含多个 Morphic 的描述。第一行包含接下来的描述数量 $t$($t \le 10^4$)。

每个描述首先包含颜色数量 $n$($1 \le n \le 26$)。接下来的 $n$ 行包含 Morphic 生长的规则。第 $i$ 行描述了由第 $i$ 种颜色的单个细胞分裂得到的、自底向上的颜色序列。每行最多包含 100 个小写英文字母。

输出格式

对于每个测试用例,如果建塔是无意义的(即:是的,我们可以省钱!),则输出一行 YES。否则输出 NO

样例

输入样例 1

4
2
ab
a
3
ba
c
c
3
ba
c
b
3
bbbbbbbbbbbbbbb
ccccccccccccccc
c

输出样例 1

YES
YES
NO
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.