摘要: 题目描述:...解法: 树形dp+分组背包。 dp[i][j]记录以i为根的子树分配j个用户时的最大收益,cnt[i]记录以i为根的子树有几个叶子节点,对于每个i,背包容量即为cnt[i]的大小。 将i的每个子节点看作一组,这组背包的物品重量即为1~cnt[son[i]],由于只能从每组中选出一种物品,所以可以看做分组背包。 1 #include<iostream> 2 #include<cstring> 3 #include<algorithm> 4 #include<vector> 5 #define N 3010 6 using names 阅读全文
posted @ 2012-10-29 21:31 silver__bullet 阅读(166) 评论(0) 推荐(0) 编辑