CF1401D.Maximum Distributed Tree
普及+/提高
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a tree that consists of n nodes. You should label each of its n−1 edges with an integer in such way that satisfies the following conditions:
- each integer must be greater than 0;
- the product of all n−1 numbers should be equal to k;
- the number of 1-s among all n−1 integers must be minimum possible.
Let's define f(u,v) as the sum of the numbers on the simple path from node u to node v. Also, let i=1∑n−1j=i+1∑nf(i,j) be a distribution index of the tree.
Find the maximum possible distribution index you can get. Since answer can be too large, print it modulo 109+7.
In this problem, since the number k can be large, the result of the prime factorization of k is given instead.
你将得到一棵包含 n 个节点的树。你需要为它的 n−1 条边分别标上一个正整数,使得满足以下条件:
- 每个整数必须大于 0;
- 所有 n−1 个整数的乘积恰好等于 k;
- 在所有 n−1 个整数中,数字 1 的个数应尽可能少。
定义 f(u,v) 为从节点 u 到节点 v 的简单路径上所有边权值之和。再定义 i=1∑n−1j=i+1∑nf(i,j) 为该树的分配指数(distribution index)。
请找出所能达到的最大分配指数。由于答案可能非常大,请输出其对 109+7 取模的结果。
在本题中,由于 k 可能很大,输入直接给出 k 的质因数分解结果。
输入格式
The first line contains one integer t (1≤t≤100) — the number of test cases.
The first line of each test case contains a single integer n (2≤n≤105) — the number of nodes in the tree.
Each of the next n−1 lines describes an edge: the i-th line contains two integers ui and vi (1≤ui,vi≤n; ui=vi) — indices of vertices connected by the i-th edge.
Next line contains a single integer m (1≤m≤6⋅104) — the number of prime factors of k.
Next line contains m prime numbers p1,p2,…,pm (2≤pi<6⋅104) such that k=p1⋅p2⋅…⋅pm.
It is guaranteed that the sum of n over all test cases doesn't exceed 105, the sum of m over all test cases doesn't exceed 6⋅104, and the given edges for each test cases form a tree.
第一行包含一个整数 t(1≤t≤100)—— 测试用例的数量。
每个测试用例的第一行包含一个整数 n(2≤n≤105)—— 树中节点的数量。
接下来的 n−1 行每行描述一条边:第 i 行包含两个整数 ui 和 vi(1≤ui,vi≤n;ui=vi)—— 表示由第 i 条边连接的两个顶点的编号。
下一行包含一个整数 m(1≤m≤6⋅104)—— k 的质因数个数。
再下一行包含 m 个质数 p1,p2,…,pm(2≤pi<6⋅104),满足 k=p1⋅p2⋅…⋅pm。
保证所有测试用例的 n 之和不超过 105,所有测试用例的 m 之和不超过 6⋅104,且每个测试用例给出的边构成一棵树。
输出格式
Print the maximum distribution index you can get. Since answer can be too large, print it modulo 109+7.
输出你能得到的最大分配指数。由于答案可能过大,请对 109+7 取模后输出。
输入输出样例
输入#1
3 4 1 2 2 3 3 4 2 2 2 4 3 4 1 3 3 2 2 3 2 7 6 1 2 3 4 6 7 3 5 1 3 6 4 7 5 13 3
输出#1
17 18 286
说明/提示
In the first test case, one of the optimal ways is on the following image:

In this case, f(1,2)=1, f(1,3)=3, f(1,4)=5, f(2,3)=2, f(2,4)=4, f(3,4)=2, so the sum of these 6 numbers is 17.
In the second test case, one of the optimal ways is on the following image:

In this case, f(1,2)=3, f(1,3)=1, f(1,4)=4, f(2,3)=2, f(2,4)=5, f(3,4)=3, so the sum of these 6 numbers is 18.
在第一个测试用例中,一种最优方案如下图所示:

此时,f(1,2)=1,f(1,3)=3,f(1,4)=5,f(2,3)=2,f(2,4)=4,f(3,4)=2,因此这 6 个数的和为 17。
在第二个测试用例中,一种最优方案如下图所示:

此时,f(1,2)=3,f(1,3)=1,f(1,4)=4,f(2,3)=2,f(2,4)=5,f(3,4)=3,因此这 6 个数的和为 18。
输入解题思路,AI测评打分。不知道怎么写?