找规律。暂时没有严谨的做法。
根据定义,每次删除一条边,代价是两个连通块的最大值的和。所以最优决策是,每次找到一个代价最大的点 v a l m a x val_{max} valmax,然后 按某种顺序 删除它所连接的所有边,然后递归到它们所形成的新的子树中。感性的理解是,我们要最早把代价最大的点删掉。
算一下一共是 2 ( n − 1 ) 2(n-1) 2(n−1) 个节点,大胆猜测结论:
s u m = ∑ i = 1 n a i + ∑ ( u , v ) ∈ E m a x ( a u , a v ) − m a x ( a i ) sum=\sum_{i=1}^n a_i+\sum_{(u,v)\in E} max(a_u,a_v)-max(a_i) sum=i=1∑nai+(u,v)∈E∑max(au,av)−max(ai)
于是就搞完了。证明的话,你考虑转化为合并节点,第一次合并的时候代价就是 a i a_i ai ,如果 a i > a j a_i>a_j ai>aj 就要再操作一次 a i a_i ai,所以边加的就是两个端点的最大值(作为新的连通块的最大代价的点对答案产生贡献),但是发现还差一项,添一个 m a x ( a i ) max(a_i) max(ai) 即可(这个应该是可以用贪心证明的吧,雾)。