傻逼依赖背包的优化

#include<bits/stdc++.h>
using namespace std;
#define N 205
struct Edge{int to,nxt;}e[N<<];
int head[N],tot,n,m,a[N];
void init(){memset(head,-,sizeof head);tot=;}
void add(int u,int v){
e[tot].to=v;e[tot].nxt=head[u];head[u]=tot++;
}
int dp[N][N];
void dfs(int u,int pre,int C){
for(int i=head[u];i!=-;i=e[i].nxt){
int v=e[i].to;
if(v==pre)continue;
for(int j=;j<=C-;j++)
dp[v][j]=dp[u][j]+a[v];
dfs(v,u,C-);
for(int j=;j<=C;j++)
dp[u][j]=max(dp[u][j],dp[v][j-]);
}
} int main(){
while(cin>>n>>m && n){
init();
for(int i=;i<=n;i++){
int fa;cin>>fa>>a[i];
add(i,fa);add(fa,i);
}
memset(dp,,sizeof dp);
dfs(,,m);
int ans=;
for(int j=;j<=m;j++)
ans=max(ans,dp[][j]);
cout<<ans<<endl;
}
}

最新文章

  1. jmap
  2. 扩展HT for Web之HTML5表格组件的Renderer和Editor
  3. UIButton 的点击事件详解
  4. 16.ARC
  5. ffmpeg调试相关知识点
  6. [VBS]_[活动分组程序]
  7. js中推断对象详细类型
  8. Cocos2d-x 3.1.1开发环境
  9. C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(下)
  10. mysql explain用法和结果的含义
  11. 微软develop apps在QQ上部分功能的实现
  12. Hibernate4
  13. 掌握闭包closure (含义及优缺点)
  14. SQL聚合函数
  15. 20155326 2017-2018-1 《信息安全系统设计基础》课下加分项mypwd实现
  16. 使用集成SOA网关的PL / SQL中的REST
  17. Greenplum-cc-web安装
  18. python 同时迭代多个序列
  19. elasticsearch6.5集群环境搭建的一些坑
  20. python的一些基本的建议

热门文章

  1. 【CodeVS】 纯OI题
  2. python补充4
  3. shell编程基础干货
  4. 【基础】Linux软件安装方法
  5. 管理员技术(六): 硬盘分区及格式化、 新建一个逻辑卷、调整现有磁盘的分区、扩展逻辑卷的大小、添加一个swap分区
  6. DOM学习总结(四)DOM修改
  7. AngularJS 指令实践指南(一)
  8. codeforces 447E or 446C 线段树 + fib性质或二次剩余性质
  9. nginx填坑补充(nginx根据上下文跳转ip或者域名)
  10. Decision Tree、Random Forest、AdaBoost、GBDT