CF2152H2.Victorious Coloring (Hard Version)
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是该问题的困难版本。该版本与其他版本的区别在于 q≤250000。只有你解决了所有版本后,才可以对本题进行 hack。
给定一棵有 n 个顶点的树,每个顶点编号为 1 到 n。每条边都被赋予一个正整数权值 w1,w2,…,wn−1。
一种“胜利染色”指的是将所有顶点染成红色或黄色两种颜色,其中必须至少有一个顶点染成红色(这象征着队伍 T1 的象征)。
设对每个顶点分配了一个非负整数权值 x1,x2,…,xn。胜利染色的代价被定义为:所有红色顶点权值之和,加上所有连接不同颜色顶点(即红色和黄色)之间的边的权值之和。定义 f([x1,x2,…,xn]) 为所有胜利染色下可能的最小代价。
Gumayusi 考虑了在给定序列 x1,x2,…,xn 时计算 f([x1,x2,…,xn]) 的问题。但对他而言这个问题太简单了,于是他改进了这个问题:给定一个整数 l,求一组非负整数顶点权值 [x1,x2,…,xn],使得 f([x1,x2,…,xn])≥l 且顶点权值总和 ∑i=1nxi 最小。
Gumayusi 感到满意,但还存在一个严重问题——这个问题没有任何询问,对于任何不是“坏的”题目来说是不可接受的。因此,他给这个问题增加了询问。每给定一个 l 作为询问,你需要输出相应的最小总顶点权值。
输入格式
每个测试用例包含多组数据。第一行给出测试用例数量 t(1≤t≤104)。每个测试用例描述如下。
第一行一个整数 n(2≤n≤250000)——顶点数。
接下来的 n−1 行描述每条边,每行三个整数 ui、vi、wi(1≤ui,vi≤n,1≤wi≤109,ui=vi),表示从 ui 到 vi 的边,权值为 wi。
保证所有边构成一棵树。
接下来一行一个整数 q(1≤q≤250000)——询问次数。
接下来的 q 行,每行一个整数 li(1≤li≤109),为第 i 个询问参数。保证所有测试用例中 n 的总和不超过 250000。
保证所有测试用例中 q 的总和不超过 250000。
输出格式
对于每个测试用例的每个询问,按行输出答案。
输入输出样例
输入#1
2 5 3 5 10 2 3 4 3 1 10 3 4 2 5 28 32 11 17 23 2 1 2 3 1 1
输出#1
88 108 21 42 66 1
说明/提示
下面为第一个测试用例每个查询的最优赋值示例:
- [18,24,2,26,18]
- [22,28,6,30,22]
- [4,7,0,9,1]
- [7,13,0,15,7]
- [13,19,0,21,13]
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?