P0440

[HNOI2006]潘多拉的盒子

[HNOI2006]潘多拉的盒子

传说中,有个神奇的潘多拉宝盒。如果谁能打开,便可以拥有幸福、财富、爱情。可是直到真的打开,才发现与之相随的还有灾难、不幸。其实,在潘多拉制造这个宝盒的时候,设置了一些咒语来封锁住灾难与不幸。然而,直到科技高度发达的今天,人们才有希望弄懂这些咒语。所以说,上千年来,人们只得忍受着各种各样的疾病和死亡的痛苦。

然而,人类的命运从此改变了。经过数十年的研究,NOI 组织在最近终于弄清楚了潘多拉咒语的原理。咒语是由一个叫做咒语机的机器产生的。用现在的名词来解释,咒语机其实就是一个二进制产生器,它产生的一个二进制字符串(这个字符串叫做咒语源)经加密后就形成了咒语。

二进制产生器的结构是这样的:它由 nn 个元件组成,不妨设这 nn 个元件的标号为 00 到 n−1n-1。在每个时刻,都有且仅有一个信号,它停留在某个元件上。一个信号就是一个二进制字符串。最开始,有一个空串信号停留在元件 00 上。

在某个时刻,如果有一个信号 ss 停留在元件 ii 上,那么这时元件 ii 可以将信号后面加一个 00,然后把信号传给元件 pi,0p_{i,0};也可以将信号后面加一个 11,然后传给元件 pi,1p_{i,1}。也就是说,下一个时刻有两种可能:一种是信号 s0s0(表示字串 ss 后面加一个 00 形成的字串)停留在元件 pi,0p_{i,0} 上,另一种是信号 s1s1 停留在元件 pi,1p_{i,1} 上。

有的元件可以将停留在它上面的信号输出,而输出的信号就成为了咒语源,这样的元件叫做咒语源输出元。

不难发现,有些咒语源是可能由一个咒语机产生的,而另一些咒语源则不行。例如,有的咒语机能产生 1,11,111,1111,…1, 11, 111, 1111, \dots 等咒语源,但是不能产生 0,10,1010, 10, 101 等咒语源。

在这个盒子上,有 KK 个咒语机,不妨将这些咒语机从 00 到 K−1K-1 标号。可能有这种情况:一个咒语机 ii 能够产生的咒语源,咒语机 jj 都能产生,这时我们称咒语机 jj 是咒语机 ii 的升级。

而衡量这个盒子复杂程度的一种办法是:看这个盒子上升级次数最多的一个咒语机,即找到一个最长的升级序列 a1,a2,…,ata_1, a_2, \dots, a_t。该升级序列满足:序列中任意两个咒语机的标号都不同,且都是 00 到 K−1K-1(包含 00 和 K−1K-1)之间的整数,且咒语机 a2a_2 是咒语机 a1a_1 的升级,咒语机 a3a_3 是咒语机 a2a_2 的升级……咒语机 ata_t 是咒语机 at−1a_{t-1} 的升级。

你想远离灾难与不幸吗?你想从今以后沐浴幸福的阳光吗?请打开你的潘多拉之盒吧。不过在打开它之前,你先得计算一下宝盒上最长的升级序列。

输入格式

第一行是一个正整数 SS,表示宝盒上咒语机的个数。

以下分为 SS 块,每一块描述一个咒语机,按照咒语机 00、咒语机 11、……、咒语机 S−1S-1 的顺序描述。每一块的格式如下:

  • 第一行有两个正整数 n,mn, m,分别表示该咒语机中元件的个数、咒语源输出元的个数;
  • 接下来一行有 mm 个数,表示 mm 个咒语源输出元的标号(都在 00 到 n−1n-1 之间);
  • 接下来有 nn 行,每一行两个数,第 ii 行(0≤i≤n−10\le i\le n-1)的两个数表示 pi,0p_{i,0} 和 pi,1p_{i,1}(都在 00 到 n−1n-1 之间)。

输出格式

一行一个正整数 tt,表示最长升级序列的长度。

样例输入

4
1 1
0
0 0
2 1
0
1 1
0 0
3 1
0
1 1
2 2
0 0
4 1
0
1 1
2 2
3 3
0 0

样例输出

3

数据范围

  • 1≤S≤501\le S\le 50;
  • 1≤m≤n≤501\le m\le n\le 50。

来源与许可

本题为 HNOI 2006 试题「潘多拉的盒子」,题面与测试数据整理自 BZOJ 1194。

样例 1

输入

4
1 1
0
0 0
2 1
0
1 1
0 0
3 1
0
1 1
2 2
0 0
4 1
0
1 1
2 2
3 3
0 0

输出

3