摘要: 题面 按照常见树形背包定义状态:设dp[u][j]表示在以u为根的子树中,选择j个客户所能获得的最大收益。 状态转移:dp[u][j]=max(dp[u][j-k],dp[v][k]-w(u,v)); 注意因为二维的是滚动数组,所以应该倒着循环。 阅读全文
posted @ 2019-08-14 13:37 神之右大臣 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 题面 对于“n个物品选任意个”我们就可以想到一种递推方法,即设f[i][j]表示前i个物品选j个的最大收益 我们发现正着转移并不好转移,我们可以倒着转移,使选择的当前第i号物品为第一个物品,这样的话我们就发现这个物品对答案做的贡献就变成了a[i].w−a[i].r∗(j−1),于是写出转移方程: f 阅读全文
posted @ 2019-08-14 12:03 神之右大臣 阅读(146) 评论(0) 推荐(0) 编辑