#P9962. 树论(一)
树论(一)
树论(一)
Problem Description
一天,学傻了的Yoshinow在学数论时,迷失在了数论的黑暗森林里! (因为是在数论森林里!)现在Yoshinow得到了一棵树,现在他想知道:在某个以 为根的子树内,有多少点对 ,满足 的最小公倍数不超过 (注意是编号的lcm) 由于Yoshinow非常——好奇,所以他现在一共有 个这样的询问。 **形式化地说:**给定 个结点的有根树(以 为根),结点标号从 到 ,共有 次询问,每次询问给出两个参数 ,表示询问有多少点对 ,满足:
- 1、 是 内的正整数。
- 2、.
- 3、标号为 的结点均在以 为根的子树内。 注:对于正整数, 表示 的最小公倍数,即同时是 倍数的最小正整数。例如, 和 的最小公倍数是 ,即 .
Input
第一行输入一个正整数 ,表示测试用例组数,. 对每组询问:第一行输入一个整数,其中。 接下来 行,每行两个整数 ,表示 之间有一条边。保证给出的 个点构成树。 接下来一行一个整数,表示询问组数,. 接下来 行,每行两个整数 ,表示一个询问。
Output
共 行,对每组测试用例,输出一行共 个整数,按顺序给出对应询问的答案,相邻整数用空格隔开。
Sample Input
1
7
1 3
1 7
3 2
3 5
5 4
5 6
5
3 23
5 10
5 30
1 5
1 7
Sample Output
23 3 9 15 27
Hint
样例给出的树如图所示:
对于第一个询问,, 的子树内共有 个点,有 对点对,除了 的最小公倍数是 外,其余每个点对都满足最小公倍数不超过 的条件,因此答案是 .
Source
2024“钉耙编程”中国大学生算法设计超级联赛(5)