【hdu 1011】Starship Troopers 树形dp
来源:互联网 发布:手机网游推荐 知乎 编辑:程序博客网 时间:2024/05/16 12:40
树形依赖背包,转移必须是三维,郁闷的是居然写了那么久,因为每一个点即是没有bug还是要一个人去对吧?k必须从1开始,从0开始会wa,而且根必须是1,好扯淡啊
#include<cstdio>#include<cstring>#include<iostream>#define maxn 105using namespace std;int f[maxn][maxn],n,m,tot,head[3*maxn],w[maxn],ned[maxn],is_rt[maxn];struct edge{int v,next;}e[maxn*3];void adde(int a,int b){e[tot].v=b,e[tot].next=head[a];head[a]=tot++;}void dfs(int u,int fa){int x=ned[u],y=w[u];for(int i=x;i<=m;i++)f[u][i]=y;for(int i=head[u];~i;i=e[i].next)if(e[i].v!=fa)dfs(e[i].v,u);for(int i=head[u];~i;i=e[i].next){int v=e[i].v;if(v==fa)continue;for(int j=m;j>=x;j--){for(int k=j-ned[u];k>=1;k--){ f[u][j]=max(f[u][j],f[v][k]+f[u][j-k]);}}}}int main(){while(scanf("%d%d",&n,&m)&&(~n)&&~m){memset(head,-1,sizeof(head));memset(f,0,sizeof(f)),tot=0;for(int i=1;i<=n;i++){scanf("%d%d",ned+i,w+i);ned[i]=(ned[i]+19)/20;}for(int a,b,i=1;i<n;i++){scanf("%d%d",&a,&b);adde(a,b);adde(b,a);}if(!m){printf("0\n");continue;}dfs(1,1);printf("%d\n",f[1][m]);}return 0;}
0 0
- 【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
- hdu 1011 Starship Troopers(树形dp)
- HDU 1011 Starship Troopers (树形DP+背包)
- hdu 1011(树形dp)Starship Troopers
- 【树形DP(背包)】 HDU 1011 Starship Troopers
- 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)
- HDU 1011 - Starship Troopers (树形DP)
- hdu 1011 Starship Troopers 树形dp
- hdu 1011 Starship Troopers(树形DP)
- hdu 1011 Starship Troopers 树形dp
- java动态代理学习笔记
- 一锤定音:高通(Qualcomm)370亿美元收购NXP,成为全球第一大汽车芯片供应商
- 4 Values whose Sum is 0(二分法)
- C语言详解 - 枚举类型
- Android之事件传递机制
- 【hdu 1011】Starship Troopers 树形dp
- 软件实现三维地图引擎的研究
- 关于安卓手机微信访问https链接白屏的问题
- git 忽略 IntelliJ .idea文件
- 学习3D地图引擎开发技术心得
- java操纵spark遇到的问题
- android 自定义View(一) View的事件分发与绘制
- 集群和负载均衡的简单介绍
- ROSCon 2016视频和幻灯片发布 ROS机器人操作系统重要参考资料