2020牛客暑期多校训练营Decrement on the Tree(图论,set)

Decrement on the Tree

题目描述

在这里插入图片描述

样例

input:
5 3
1 2 3
1 3 4
2 4 5
3 5 6
1 10
2 10
3 10
output:
8
12
10
10

题目大意

给你一棵树,现在你可以选择其中的一条链,将其边上的权值都减一。并且每条边的权值不能为负数。要求最少要删除多少次(每次只能减一),才能使得整棵树的权值都是0。(只需要输出答案,而不是修改)
并且,在给出答案之后,会有 q q q次修改,将某一条边的权值改成另一个,这时你要再一次输出答案。

分析

首先看到题目有一种树剖的感觉,但是显然,求答案时无法很好地用树剖解决。

所以这题应该是要维护每条边的权值。我们不妨思考一下求答案的过程实际是什么。实际就是找最少的链将树覆盖,然后每条边的重叠次数都有限制。
由于每条链唯一地由两个端点决定,所以,我们不妨考虑一下一棵树被覆盖后的链的端点处在那些节点上。
在这里插入图片描述
如图,我已经将覆盖所用的链用不同的颜色标出。可以发现:

  • 如果出现图三的情况,即一个点相连的边的权值中 M a x Max Max大于其他边的和,那么其他边可以通过 M a x Max Max通向其他的节点作为终点,而 M a x Max Max减去其他边总和数量的链只有将这个点作为端点了。这样,以这个点为端点个数就是 M a x − O t h e r s Max-Others Max<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值