古老的游戏
时间限制:1秒 内存限制:256M
【问题描述】
有一个古老的石头游戏,该游戏基于一棵树,游戏的目标是在树 \(T\) 的根节点上放一颗石头,游戏的规则如下:
1、 游戏开始前,玩家先将 \(K\) 个石头放入桶中。
2、 在游戏的每一步,玩家从桶中拿一颗石头放到树的一个空的叶子节点上。
3、 当一个节点 \(p\) 的所有 \(r\) 个子节点都有一个石头,则移去 \(r\) 个子节点上的石头,然后将一个石头放到节点 \(p\) 上。剩下的 \(r-1\) 个石头重新放到桶中重复使用。
如果玩家根据以上规则放置石头,并最终在根节点上放置一颗石头,则赢得游戏。现在的任务是求出游戏开始时,石头数 \(K\) 的最小值,使得玩家能在给定树的情况下赢得游戏。
【输入格式】
第一行输入测试用例的个数 \(T\),每个测试用例是一颗树的描述。第二行开始输入每棵树的描述。
每棵树有 \(N\) 个节点,节点标号为 \(1,2,...N\),每个节点可以有任意个子节点,根节点标号为 \(1\)。树的描述第一行为节点数 \(N\),第二行开始按照节点标号顺序描述 \(N\) 个节点的子节点,每行第一个数为标号 \(p\),第二个数为子节点数 \(r\),如果 \(r\) 不为 \(0\),接下来为 \(r\) 个子节点的标号。
【输出格式】
对每棵树,输出石头数的最小值。
【输入输出样例1】
Input
2
7
1 2 2 3
2 2 5 4
3 2 6 7
4 0
5 0
6 0
7 0
12
1 3 2 3 4
2 0
3 2 5 6
4 3 7 8 9
5 3 10 11 12
6 0
7 0
8 0
9 0
10 0
11 0
12 0
Output
3
4
【数据限制】
\(1≤T≤100\)
\(1≤N≤1000\)