Description
给出一棵以0为根的树,从根出发,走过一些节点。 每个节点有一个得分,可能正可能负,可以重复经过节点,但是只有第一次经过会改变当前得分。 如果当前得分为负,会马上变成0.
求最大得分。
对于100%的数据,n<=1000,快乐度均为绝对值不超过1,000,000的整数。
Analysis
SB树形DP,搞了一个星期数据结构智商以下线
而且这题目故意把n开1000,说不定开100000我就会做了QAQ
O(n)
数据范围坑人的,想了N久的n^2
发现每次变成0都是将包括根的一个连通块的贡献整体变成0
那么题目相当于求,可以把包括根的一个连通块整体变成0(称连通块内的点为清零的点)之后的最大权和
这就是个简单的树形DP
设f[i]表示i没被清0,g[i]表示i被清0
600B完事了

本文探讨了一道关于树形DP的问题,通过合理的状态定义,实现了对树状结构中节点的最大得分计算。考虑到节点得分可能变化的情况,文章提出了有效的算法解决方案。
281

被折叠的 条评论
为什么被折叠?



