luogu P1064 金明的预算方案

传送门

这题最难了(认真

发现自己之前搞得树上背包又凉了...

写了一个O(n*V)的dfs序优化贴一下吧

50 minutes later...

MD这题怎么D不出来  

结果这题不是典型的树dp

因为孩子数特别多 然后深度较小 所以不需要采用树dp 的形式

直接判断是否为附件

总体复杂度为O(n*(V+n)) 

Code:(主程序)

1     rep(i,1,n) {
2         if(a[i].p) continue;
3         rep(j,1,a[i].c-1) tmp[j] = 0;
4         rep(j,a[i].c,V) tmp[j] = dp[j-a[i].c] + a[i].v;
5         rep(j,1,n) if(a[j].p == i) {
6             per(k,V,a[i].c + a[j].c) tmp[k] = max(tmp[k],tmp[k-a[j].c] + a[j].v);
7         }
8         rep(j,a[i].c,V) dp[j] = max(dp[j],tmp[j]);
9     }

 

转载于:https://www.cnblogs.com/yuyanjiaB/p/9894122.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值