hdu 1011 树形dp
来源:互联网 发布:手机遥控器软件大全 编辑:程序博客网 时间:2024/05/16 14:15
#include<cstdio>#include<cstring>#define MAX(x,y) ((x)>(y)?(x):(y))struct node{int to,next;}e[240];int cnt,head[120];int n,m,dp[120][120],num[120];int value[120];void add_edge(int from,int to){e[cnt].to=to;e[cnt].next=head[from];head[from]=cnt++;}void dfs(int u,int v){for(int i=head[u];i!=-1;i=e[i].next){int g=e[i].to;if(g==v)continue;dfs(g,u);for(int j=m;j>0;j--){for(int k=1;(j-k)>=num[u];k++){dp[u][j]=MAX(dp[u][j],dp[u][j-k]+dp[g][k]);}}}for(int i=num[u];i<=m;i++)dp[u][i]+=value[u]; }int main(){while(~scanf("%d%d",&n,&m)){if(n==-1&&m==-1)break;memset(dp,0,sizeof(dp));memset(num,0,sizeof(num));for(int i=1;i<=n;i++){int t;scanf("%d%d",&t,&value[i]);num[i]=(t+19)/20;} memset(head,-1,sizeof(head));cnt=0;for(int i=1;i<n;i++){int a,b;scanf("%d%d",&a,&b);add_edge(a,b);add_edge(b,a);}if(m==0){printf("0\n");continue;} dfs(1,-1);printf("%d\n",dp[1][m]);}}
0 0
- hdu 1011 (树形DP)
- hdu 1011 树形DP
- hdu 1011 树形DP
- HDU-1011 树形dp
- hdu 1011(树形dp)
- hdu 1011树形dp
- HDU 1011 树形dp
- HDU-1011-树形dp
- hdu 1011 树形dp
- HDU 1011 树形 dp
- hdu 1011 树形dp 背包
- hdu 1011(树形DP)
- HDU 1011(树形dp)
- 【DP】HDU 1011 Starship Troopers 树形DP
- hdu 1011 Starship Troopers 树形dp
- hdu 1011 Starship Troopers 树形dp
- hdu 1011 Starship Troopers(树形DP)
- hdu 1011 Starship Troopers 简单树形DP
- studio 操作记录
- BZOJ 2818 Gcd (线性筛+欧拉函数)
- Cocos2d别踩白块儿游戏源码
- 内存溢出优化方法
- startActivityForResult和onActivityResult遇到的问题
- hdu 1011 树形dp
- CodeForces 637 D.Running with Obstacles(贪心)
- Evenbus 3.0 分析
- Linux cpu信息详解
- 小试WebService
- 类名.class Class.forName("类的全路径") 对象实例.getClass的区别
- RecyclerView Item加载动画
- 题目1465:最简真分数
- 安卓6.0权限问题导致老蓝牙程序出现异常解决办法:Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission...