我说过我是dp菜,这题纠结了好久。。
题目大意:
给你一颗树和树上的节点的权值,求走m步能得到的最大权值,每条边能重复走。
简略题解:
我用的是背包(因为只对这个比较熟悉),dfs路径时,最终的结果可能经过当前节点,也可能不经过。
可以这样设:
f[i,j,0]表示i号节点为根走j步回到当前节点的最大权值
f[i,j,1]表示i号节点为根走j步不回到当前节点的最大权值
好了,那么max(f[1,m,1],f[1,m,0])就是结果
然后就dfs一遍,复杂度n*m^2
附程序: