这可能是最简单最清晰的代码
根据题意,原题为删除一条边的费用为该边连接子树中结点权值最大值之和。
于是联想到添加一条边。题目中已经说了是“树形结构”。
即添加边的次数恒定。根据这一点,可以想到如果求边的最小费用我们就希望每次加的最大值最小。同时,每个点必定至少加一次。
于是问题转换为每次加有联通边的两个数 A A A, B B B,贡献为 max ( A , B ) \max( A , B ) max(A,B) 。
接着记录 最大值 ,在下一次操作时,又重复操作。
代码如下:
#include<bits/stdc++.h>