题号:NC21656
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld
题目描述
牛牛有很多玩具,放在一棵无向树上。
树的标号从0到n-1, 有k个不同的节点上有玩具,一开始这k个点也放着炸弹
炸弹在T秒后就会爆炸,因此你有T次机会可以移动玩具
每次移动可以将若干个玩具移动到相邻的点上,在T秒内允许多个玩具在同一个节点
但是T秒后,一个节点只能有一个玩具
求最终可以保护多少个玩具不被炸掉
输入描述:
第一行输入两个整数n,T(2 ≤ n ≤ 50), (1 ≤ T ≤ 50)
第二行输入n-1个整数p[i](0 ≤ i ≤ n - 1), p[i]表示(i+1)与p[i]之间有一条边
第三行输入一个整数m表示玩具的数量
第四行输入m个互不相同的整数表示每个玩具所在的节点,
输出描述:
输出一个整数
示例3
输入
复制
11 50
0 1 2 3 4 5 6 7 8 9
7
0 1 2 3 4 5 6
备注:
子任务一30分:n<=10
子任务二30分:n<=20
子任务三40分:n<=50