关于树形dp的一些细节
1.写f[u][]的时候,记住是以u为根,不要去管上面的点有多难转移等等,考虑好自己就行了。
2.树形背包注意两点:
一是预处理f[u][]=val[u]具体是f[u][1]还是for(i from tiji[u] to m)f[u][i]=val[u]视题目而定。
二是如果有依赖的话,用这个:
for(int j=m-xtj[u];j>=0;j--)
for(int k=0;k<=j;k++)
f[u][j+xtj[u]]=max(f[u][j+xtj[u]],f[u][j+xtj[u]-k]+f[v][k]);
注意j的写法,要给背包留出依赖的空间