OJ现已增加邮箱找回密码功能,还没有绑定邮箱的同学们请抓紧时间,以免密码丢失无法找回


问题 B: 树上游戏

问题 B: 树上游戏

时间限制: 2 Sec  内存限制: 128 MB
提交: 1137  解决: 575
[提交] [状态] [讨论版] [命题人:]

题目描述

有n个点的一颗树,现在选定M个点,问你把这M个点分为不超过k组的方案数(对1e9+7取模)
分配规则:
从根开始在同一条链上的点不能分为一组,即父亲(直接或间接)与儿子(直接或间接)不能分为一组

众所周知,这是一颗树,树的根不同那么原本父亲与儿子的关系就会改变,现在有q次询问,问你当x为根,分为不超过k组的方案数

输入

第一行n和q(1<=n<=100000,1<=q<=1000)
接下来n-1条边
第n+1行,一个数字M(1<=M<=1000)
第n+2行,M个数字,表示被选中的点
然后开始有q次询问
每一次询问给定root与k(1<=k<=100),表示以root为根,分为不超过k组

输出

对于每次询问输出答案(答案对1e9+7取模)

样例输入 Copy

5 5
1 2
1 3
1 4
2 5
3
1 5 2 
4 1 
3 3 
2 1 
2 3 
4 3 

样例输出 Copy

0
1
0
2
1

提示

样例解释:
当4为根分1组时,无法分为1组
当3为根分3组时,无法分为1组与2组,可以分为3组,{1},{5},{2}
当2为根分1组时,无法分为1组
当2为根分3组时,无法分为1组,分为2组和3组的方案为[{2},{5,1}]与[{1},{5},{2}],注意{1,5}与{5,1}算同一种方案
当4为根分3组时,无法分为1组与2组,分成3组的方案为{1},{5},{2}