题意:

有n个洞,连接像一棵树,每个包含一定数量的怪和价值,给你m个士兵,每个士兵能打20个怪,杀完一个洞的怪可得该洞的价值才可继续打相连的下面的洞(每个士兵只能打一个洞),求获得的最大价值。

分析:把士兵数看做容量,就是背包问题,dp[i][j]以i为根节点子树士兵数j时获得的最大价值(根节点有一定的士兵,要先打通根节点)1是根节点

#include <map>
#include <set>
#include <list>
#include <cmath>
#include <queue>
#include <stack>
#include <cstdio>
#include <vector>
#include <string>
#include <cctype>
#include <complex>
#include <cassert>
#include <utility>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
using namespace std;
typedef pair<int,int> PII;
typedef long long ll;
#define lson l,m,rt<<1
#define pi acos(-1.0)
#define rson m+1,r,rt<<11
#define All 1,N,1
#define read freopen("in.txt", "r", stdin)
const ll  INFll = 0x3f3f3f3f3f3f3f3fLL;
const int INF= 0x7ffffff;
const int mod =  1000000007;
vector<int>e[110];
int used[110],dp[110][110],p[110],b[110];
int n,m;
void dfs(int root){int tmp=(b[root]+19)/20;//打通根节点需士兵数for(int k=tmp;k<=m;++k)dp[root][k]=p[root];used[root]=1;for(int i=0;i<e[root].size();++i){int son=e[root][i];if(used[son])continue;dfs(son);for(int j=m;j>=tmp;--j)for(int l=1;l<=j-tmp;++l)dp[root][j]=max(dp[root][j],dp[root][j-l]+dp[son][l]);}
}
int main()
{while(~scanf("%d%d",&n,&m)){if(n==-1&&m==-1)break;for(int i=1;i<=n;++i){scanf("%d%d",&b[i],&p[i]);e[i].clear();}memset(dp,0,sizeof(dp));memset(used,0,sizeof(used));int u,v;for(int i=0;i<n-1;++i){scanf("%d%d",&u,&v);e[u].push_back(v);e[v].push_back(u);}if(m==0)printf("0\n");else{dfs(1);printf("%d\n",dp[1][m]);}}
return 0;
}

转载于:https://www.cnblogs.com/zsf123/p/4698500.html

HDU 1011-Starship Troopers(树形背包)相关推荐

  1. HDU 1011 Starship Troopers 树形+背包dp

    http://acm.hdu.edu.cn/showproblem.php?pid=1011   题意:每个节点有两个值bug和brain,当清扫该节点的所有bug时就得到brain值,只有当父节点被 ...

  2. 树形DP——HDU 1011 Starship Troopers

    HDU 1011 Starship Troopers 题目 http://acm.hdu.edu.cn/showproblem.php?pid=1011 作为星河战队的领导者,你被派去摧毁这些虫子的基 ...

  3. hdu 1011 Starship Troopers (树形背包dp)

    本文出自   http://blog.csdn.net/shuangde800 题目链接 : hdu-1011 题意 有n个洞穴编号为1-n,洞穴间有通道,形成了一个n-1条边的树, 洞穴的入口即根节 ...

  4. HDU 1011 Starship Troopers星河战队(树形dp)

    题意 有n个洞穴编号为1-n,洞穴间有通道,形成了一个n-1条边的树, 洞穴的入口即根节点是1. 每个洞穴有x只bugs,并有价值y的金子,全部消灭完一个洞穴的虫子,就可以获得这个洞穴的y个金子. 现 ...

  5. HDU Starship Troopers (树形DP)

    Starship Troopers Time Limit : 10000/5000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) ...

  6. HDU 1011(星河战队 树形DP)

    题意是说在一个洞穴中有许多房间,每个房间中有一些虫子和大脑,这些房间之间用隧道相连形成一棵树,士兵们杀虫子的能力有限,也可以直接杀死虫子而不消耗士兵战斗力,但这样就无法得到房间中的大脑,士兵们不能走回 ...

  7. HDU 4276 The Ghost Blows Light 最短路+树形背包

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4276 目录 题意 分析 Code 题意 有一棵树,每个节点都有财富wi,每条边都会花费ci的时间,问你 ...

  8. HDU 1248 寒冰王座(全然背包:入门题)

    HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...

  9. 【每日DP】day 8、P2014 [CTSC1997]选课(树形DP(树形背包)模板)难度⭐⭐⭐

    P2014 [CTSC1997]选课 题意为选一门课前要看它是否有前提条件:即选了一门主课才能选 "副科",所以可以树形背包来做. 注意是不能用分组背包来做,因为这道题附件有很多个 ...

  10. [Jsoi2016]最佳团体 BZOJ4753 01分数规划+树形背包/dfs序

    分析: 化简一下我们可以发现,suma*ans=sumb,那么我们考虑二分ans,之后做树形背包上做剪枝. 时间复杂度证明,By GXZlegend O(nklogans) 附上代码: #includ ...

最新文章

  1. 生产环境下JAVA进程高CPU占用故障排查
  2. post postman 传值_postman参数传递
  3. Intel 平台编程总结----缓存的优化
  4. 通过实现继承TabActivity并且实现TabContentFactory的方法创建选项卡的一点心得
  5. 陷阱:C++模块之间的”直接依赖“和”间接依赖“与Makefile的撰写
  6. CRM product ID format相关配置
  7. MYSQL jdbc autoReconnect
  8. 修改表名_面试官:如何批量修改mysql表字段、表、数据库字符集和排序规则
  9. 计算正方形面积和周长_寒假作业:长方形、正方形周长面积应用题,附答案
  10. tapestry mail freemarker的使用
  11. Zabbix_Server 迁移之 Agent 地址批量修改
  12. C#_未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
  13. 如何让应用出现在LINUX的右键/打开方式/更多应用
  14. Remote Desktop Connection Manager (RDCMan)
  15. Handler消息机制详解,另对于MessageQueue阻塞线程的详解
  16. 计算机毕业设计Spark+SpringBoot旅游推荐系统 旅游大数据分析大屏 旅游可视化 旅游路线规划系统 旅游推荐App小程序 旅游网站 自驾游路线规划系统 自驾游推荐系统 自驾游推荐App小程序
  17. 联想电脑阻止c语言运行,联想电脑运行程序打不开怎么解决
  18. Linux iptables 防火墙相关资料
  19. Fractal Streets||分形之城
  20. VUE构建工具-姜威-专题视频课程

热门文章

  1. EOS能不能囤?一篇文章搞懂EOS优缺点
  2. 1085 Perfect Sequence
  3. Python培训分享:Python发展前景怎么样?
  4. 使用intellij idea制作可执行jar文件
  5. AutowireCapableBeanFactory,实现不必配置xml文件,动态加载bean
  6. LINQ之路19:LINQ to XML之X-DOM更新、和Value属性交互
  7. 再谈session共享
  8. 【AngularJS】—— 12 独立作用域
  9. SilverLight 4页面跳转大全
  10. 云计算(2)it 是什么