ZUFEOJ
Home
ProblemSet
Source/Category
Contest
Status
Ranklist
F.A.Qs
ContestProblemSetList
Login
Register
问题 A: 树论(一)
内存限制:256 MB
时间限制:4 S
题面:传统
评测方式:文本比较
上传者:
提交:18
通过:6
返回比赛
提交
提交记录
题目描述
一天,学傻了的Yoshinow 在学数论时,迷失在了数论的黑暗森林里! (因为是在数论森林里!)现在Yoshinow得到了一棵树,现在他想知道:在某个以r为根的子 树内,有多少点对(i,j) ,满足i,j 的最小公倍数不超过x(注意是编号的lcm) 由于Yoshinow 非常——好奇,所以他现在一共有Q个这样的询问。 形式化地说:给定n个结点的有根树(以1为根),结点标号从1到n,共有Q次询问,每 次询问给出两个参数r,x,表示询问有多少点对(i,j),满足:
• 1、i,j 是 [1,n] 内的正整数。
• 2、lcm(i,j) ≤ x.
• 3、标号为i,j 的结点均在以r为根的子树内。
输入格式
第一行输入一个正整数T,表示测试用例组数,1≤T ≤3.
对每组询问:第一行输入一个整数n,其中1≤n≤10^5.
接下来n−1行,每行两个整数u,v(1≤u,v ≤n),表示 u,v 之间有一条边。保证给出的n 个点构成树。
接下来一行一个整数Q,表示询问组数,1≤Q≤10^6. 接下来Q行,每行两个整数r,x(1≤r≤n,0≤x≤10^5),表示一个询问。
输出格式
共T 行,对每组测试用例,输出一行共Q个整数,按顺序给出对应询问的答案,相邻整数用 空格隔开。
输入样例
复制
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
输出样例
复制
23 3 9 15 27
数据范围与提示
样例给出的树如图所示:
对于第一个询问,r = 3,x = 23,r = 3 的子树内共有 5 个点,有 52 = 25 对点对,除了 (5, 6), (6,5) 的最小公倍数是 30 > 23 外,其余每个点对都满足最小公倍数不超过 23 的条件, 因此答案是25−2=23.
分类标签
2024杭电多校第五场