链接:http://acm.hdu.edu.cn/showproblem.php?pid=5834
题意:给定一棵树,有点权和边权,点权上的价值只能取一次,多次通过边要花费多次边权,求以每个节点为起点能获得的最大价值。
分析:比较经典的一类树形dp,设1为根设g[i][0/1]表示从i出发只向儿子走的最大收获,0表示最终回到了i,1表示最终是在某个子孙中结束的,设f[i][0/1]表示i到i的父亲这条边走了两次和一次的最大收获,最终答案就是max(g[i][0]+f[i][1],g[i][1]+f[i][0])。
代码:
#include
推荐阅读