#P3899. 更为厉害
更为厉害
更为厉害
- 时间限制:2 秒
- 内存限制:512 MiB
题目描述
给定一棵以结点 为根、含 个结点的树。
对于树上两个不同的结点 :
- 若 是 的祖先,则称“ 比 更为厉害”;
- 若 的树上距离不超过给定常数 ,则称“ 与 彼此彼此”。
你需要回答 个询问。每个询问给定 ,求有多少个有序三元组 同时满足:
- 是三个互不相同的结点,且 ;
- 和 都是 的祖先;
- 与 的距离不超过 。
输入格式
第一行输入两个正整数 ,分别表示结点数和询问数。
接下来 行,每行输入两个整数 ,表示树上的一条无向边。
接下来 行,每行输入两个整数 ,表示一次询问。
输出格式
对于每个询问输出一行一个非负整数,表示合法有序三元组的数量。
样例输入 1
5 3
1 2
1 3
2 4
4 5
2 2
4 1
2 3
样例输出 1
3
1
3
样例解释
样例中的树如下:

对于第一个和第三个询问,合法三元组为 、、。对于第二个询问,唯一的合法三元组为 。
数据范围
对于所有数据,保证 ,,输入的边构成一棵树。
| 子任务编号 | 分值 | 特殊限制 |
|---|---|---|
| 1 | 15 | |
| 2 | 树是一条以结点 为端点的链 | |
| 3 | 30 | 所有询问均满足 |
| 4 | 40 | 无特殊限制 |