#CF2122G. 树停车
树停车
G. 树停车
时间限制:2 秒
内存限制:256 兆字节
考虑以下问题陈述:
- 给定一棵以 为根、有 个顶点的树。对于每个 ,一辆车将在时间 进入根节点。然后它会瞬间沿着唯一简单路径从根节点行驶到顶点 ,并停在那里。它将在时间 沿同一条路径(相反方向)离开。
- 当一辆车停在一个顶点时,它会阻止其他车辆通过该顶点。当且仅当所有车辆都能在它们期望的时间进入和离开树时,这棵树才被称为有效。
计算满足以下条件的序列对 的数量:,它们的拼接是 的一个排列,且该树是有效的。
对于所有具有 个顶点和 个叶子的带标号树 ,计算上述答案的总和。根节点不算作叶子。由于答案可能很大,请对 取模。
两棵带标号树被认为是不同的,当且仅当它们的边集不同。
输入
每个测试包含多个测试用例。第一行包含测试用例数 ()。
每个测试用例的描述如下:
唯一一行包含两个整数 ()—— 树的顶点数和叶子数。
保证所有测试用例的 之和不超过 。
输出
对于每个测试用例,输出一个整数 —— 答案对 取模。
样例
输入
3
2 1
8 3
65 43
输出
3
899171636
38330886
说明
在第一个测试用例中,只有一棵树满足约束条件。正确的序列对是: