题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5052
题目描述:输入一棵树,带点权,然后有一些询问, a b c,表示从a走到b,你可以在某个节点处买东西,花费为该点的点权,你在后面的点的位置可以卖出去,收益是该点的点权,询问你能获得的最大收益。然后将a 到 b,路径上的所有点加上权值c
解题思路:kuangbin大神题解是LCT,弱渣只会树链剖分,想想还是能做的。。。只是代码有点长。o s-h-i-t...
由于树的形态是不会改变的所以一开始就没有往LCT方面想。。。。(其实想到也做不出来。。。都是泪。。。)
然后线段树维护,区间的最大值max_val,最小值min_val,从左往右的最大收益down,从右往左的最大收益up,然后就是套一个树链剖分的模板,搞一搞,就可以了
代码实在有点长,建议先想好了再敲键盘。。。不然,只能悲剧。。。
//#pragma comment(linker,"/STACK:102400000,102400000")
#include
#include
#include
#include
#include
#include
#include