#USACO2254. 奶牛进化

    ID: 782 Type: Default File IO: evolution 1000ms 128MiB Tried: 3 Accepted: 2 Difficulty: 7 Uploaded By: Tags>USACO2019USOpenContestBronze

奶牛进化

题目描述

现在是 3019年,在过去的一千年里发生了不计其数的牛类进化,产生了具有各种有趣特性的奶牛。

牛类进化的记录可以用一棵树来表示,起源是位于树根位置的没有特殊特性的奶牛。

对于树上每一个产生后代的结点,有可能所有的奶牛都进化出了一种新的特性(比如说喷火(fire breathing),如下图所示,其中所有斑点(spots)奶牛最后都能喷火),或者是奶牛种群产生了分支进化,其中有些进化出了新的特性(比如,飞(flying)),有的没有。

fig_evolution_bronze_open19.png

树底部的叶结点表示 3019年所有产生的奶牛的子种群。

没有不同的叶结点(子种群)具有完全相同的一组特性。

例如,子种群#1是没有特殊特性的奶牛,子种群#3是能够心灵感应的(telepathic)会飞的奶牛。

相比之下,子种群#2是会飞但不能心灵感应的奶牛。

子种群#3是唯一既会飞又会心灵感应的奶牛。

像上图这样每一种进化出的新特性都恰好在树中的一条边上产生(也就是说,在整个进化历史中仅在一个时间点产生),这样的进化树被称为是“合法的”。

例如,如果斑点这一特性在两个不同分支中均进化产生,这棵进化树就不是合法的。

给定 3019年奶牛子种群的描述,请判断是否这可以由一棵合法的进化树所解释。

输入格式

输入的第一行包含子种群的数量 NN

以下 NN 行每行描述一个子种群。

每行包含一个整数 KK,之后是 KK个该子种群奶牛所拥有的特性。

特性是由至多 2020 个小写字母a..z(a..z)组成的字符串。

没有两个子种群拥有完全相同的特性。

输出格式

如果可能构造一棵可以解释所有子种群产生途径的进化树,输出yes,否则输出no

4
2 spots firebreathing
0
1 flying
2 telepathic flying​
yes​

提示

2N252≤N≤25,

0K250≤K≤25