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