九条可怜是一个喜欢算法的女孩子,在众多算法中她尤其喜欢深度优先搜索(DFS)。
有一天,可怜得到了一棵有根树,树根为
在一棵树上从
- 将递归栈设置为空。
- 首先将节点
放入递归栈中。 - 从递归栈中取出栈顶节点,如果该节点为
,则结束演算过程;否则,如果存在未访问的直接子节点,则以均等概率随机选择一个子节点加入递归栈中。 - 重复步骤 3,直到不存在未访问的直接子节点。
- 将上一级节点加入递归栈中,重复步骤 3。
- 重复步骤 5,直至当前一级节点为
,演算过程结束。
我们定义
九条可怜想知道对于所有合法的点对
输入格式
输入包含多组数据,第一行输入数据组数
对于接下来的每组数据,第一行两个整数
接下来一行
接下来
输出格式
对于每组数据,输出一行,包含一个整数,代表对于所有合法点对
样例一
input
4 1 1 1 3 3 3 3 4 3 1 3 2 6 1 5 2 4 1 3 6 1 2 1 6 2 3 2 4 4 5 5 1 5 4 3 2 1 1 2 1 3 3 4 3 5
output
1 16 34 499122202
explanation
样例二
见附件下载。
限制与约定
对于所有测试点,满足
每个测试点的具体限制见下表:
测试点编号 | 特殊限制 | ||
---|---|---|---|
无 | |||
无 | |||
无 | |||
树的生成方式随机 | |||
树是一条链 | |||
根的度数为 |
|||
无 |
对于测试点
时间限制:
空间限制: