CF1363E.Tree Shuffling
普及+/提高
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Ashish has a tree consisting of n nodes numbered 1 to n rooted at node 1. The i-th node in the tree has a cost ai, and binary digit bi is written in it. He wants to have binary digit ci written in the i-th node in the end.
To achieve this, he can perform the following operation any number of times:
- Select any k nodes from the subtree of any node u, and shuffle the digits in these nodes as he wishes, incurring a cost of k⋅au. Here, he can choose k ranging from 1 to the size of the subtree of u.
He wants to perform the operations in such a way that every node finally has the digit corresponding to its target.
Help him find the minimum total cost he needs to spend so that after all the operations, every node u has digit cu written in it, or determine that it is impossible.
阿什什有一棵由 n 个节点组成的树,节点编号为 1 到 n,根节点为节点 1。树中第 i 个节点有一个代价 ai,且写有一个二进制数字 bi。他希望最终第 i 个节点上写的二进制数字为 ci。
为实现这一目标,他可以执行以下操作任意多次:
- 任选节点 u 的子树中的任意 k 个节点,并随意重排这些节点上的二进制数字,该操作花费代价为 k⋅au。其中,k 可取 1 到 u 的子树大小之间的任意整数。
他希望以某种方式执行这些操作,使得每个节点最终所写的数字均与其目标值一致。
请帮助他求出使所有节点 u 最终写有数字 cu 所需的最小总代价;若不可能实现,则判定其不可行。
输入格式
First line contains a single integer n (1≤n≤2⋅105) denoting the number of nodes in the tree.
i-th line of the next n lines contains 3 space-separated integers ai, bi, ci (1≤ai≤109,0≤bi,ci≤1) — the cost of the i-th node, its initial digit and its goal digit.
Each of the next n−1 lines contain two integers u, v (1≤u,v≤n, u=v), meaning that there is an edge between nodes u and v in the tree.
第一行包含一个整数 n (1≤n≤2⋅105),表示树中节点的数量。
接下来的 n 行中,第 i 行包含三个用空格分隔的整数 ai、bi、ci (1≤ai≤109,0≤bi,ci≤1) —— 分别表示第 i 个节点的代价、其初始数字和目标数字。
接下来的 n−1 行中,每行包含两个整数 u、v (1≤u,v≤n, u=v),表示树中节点 u 与节点 v 之间存在一条边。
输出格式
Print the minimum total cost to make every node reach its target digit, and −1 if it is impossible.
输出使每个节点都达到其目标数字的最小总代价;如果无法实现,则输出 −1。
输入输出样例
输入#1
5 1 0 1 20 1 0 300 0 1 4000 0 0 50000 1 0 1 2 2 3 2 4 1 5
输出#1
4
输入#2
5 10000 0 1 2000 1 0 300 0 1 40 0 0 1 1 0 1 2 2 3 2 4 1 5
输出#2
24000
输入#3
2 109 0 1 205 0 1 1 2
输出#3
-1
说明/提示
The tree corresponding to samples 1 and 2 are:

In sample 1, we can choose node 1 and k=4 for a cost of 4⋅1 = 4 and select nodes 1,2,3,5, shuffle their digits and get the desired digits in every node.
In sample 2, we can choose node 1 and k=2 for a cost of 10000⋅2, select nodes 1,5 and exchange their digits, and similarly, choose node 2 and k=2 for a cost of 2000⋅2, select nodes 2,3 and exchange their digits to get the desired digits in every node.
In sample 3, it is impossible to get the desired digits, because there is no node with digit 1 initially.
对应样例 1 和样例 2 的树如下:

在样例 1 中,我们可以选择节点 1 并取 k=4,花费为 4⋅1=4,选中节点集 {1,2,3,5},对其数字进行重排,从而使得每个节点均得到目标数字。
在样例 2 中,我们可以选择节点 1 并取 k=2,花费为 10000⋅2,选中节点集 {1,5} 并交换它们的数字;类似地,选择节点 2 并取 k=2,花费为 2000⋅2,选中节点集 {2,3} 并交换它们的数字,从而使得每个节点均得到目标数字。
在样例 3 中,无法得到目标数字,因为初始时没有任何节点包含数字 1。
输入解题思路,AI测评打分。不知道怎么写?