[Poi2003]Treasure
Byteasar 国王把他所有的财宝都藏在了他城堡里的一个秘密地点。无论如何,当他外出征战时,他害怕如果战死以后财宝将会永远丢失。因此他选择了一些可以信任的守卫,然后告诉了他们每个人一点关于财宝藏匿地点的信息,之后命令他们去守卫位于城堡地下的地下室,并且不断巡逻,遵守告诉他们的右手原则。
地下室有很多房间,由走廊连接而成。走廊互相都不交叉,没有两条走廊连接同样的两个房间。右手原则规定:每个守卫在进入一个房间以后,要由他进来的那条走廊右边的那一条离开。每个守卫都被安排了不同的开始地点和进入走廊,有的时候多个守卫走进同一个房间是允许的。
国王知道,直到他牺牲和归来之前,他的守卫都会足够忠诚地执行他的命令。但是,他害怕当若干个守卫在同一个房间聚会时,他们会分享各自知道的信息:守卫都是很慷慨的,他们会分享自己所知道的所有信息;但是如果两个守卫在走廊里相遇,他们不会对对方说任何东西。
国王想知道当他从战场归来时,他的财宝是否还能安全可靠。他想知道有哪些守卫可能得到所有的财宝信息。
输入格式
第一行一个整数 ,表示地下室的房间数,房间编号 到 。
接下来 行每行描述一个房间:第 行首先是一个数 ,表示所有和第 个房间连接的走廊数;接下来 个整数,每两个数描述一条走廊,第一个数为走廊另一头的房间编号,第二个数为走廊的长度。走廊都是双向的,即如果有一条 到 的长度为 的走廊,那么肯定对应地有一条从 到 的长度为 的走廊。所有走廊按顺时针方向给出。
接下来两个整数 和 , 为守卫的个数, 为找到所有财宝需要知道的信息数目。守卫从 到 编号,财宝信息从 到 编号。
接下来 行每行描述一个守卫:每行前两个数表示守卫的初始位置和他第一次要走到哪一个房间去;接下来一个整数 ,表示这个守卫知道的信息数目;然后接着 个整数,描述了他所知道的所有信息编号。
输出格式
第一行输出一个整数,表示知道所有财宝信息的守卫的总数。
接下来每行一个数,表示这些守卫的编号,从小到大输出。
样例输入
4
3 2 3 3 4 4 1
2 1 3 3 1
3 4 3 1 4 2 1
2 1 1 3 3
3 4
1 4 2 2 3
3 1 2 1 2
3 4 2 3 4
样例输出
2
2
3
数据范围
- ;
- ;
- 每条走廊的长度是 到 的整数;
- ;
- ;
- 。
来源与许可
本题为 POI 2003 试题「Treasure」,题面与测试数据整理自 BZOJ 2611。
样例 1
输入
4
3 2 3 3 4 4 1
2 1 3 3 1
3 4 3 1 4 2 1
2 1 1 3 3
3 4
1 4 2 2 3
3 1 2 1 2
3 4 2 3 4
输出
2
2
3