HDU1011 Starship Troopers(树形dp)
题意:
有n个房间组成一棵树,你有m个士兵,从1号房间开始让士兵向相邻的房间出发,每个房间里有一个代价,代价是值/20个士兵,
同时有一个价值,问你花费这m个士兵可以得到的最大价值是多少,
思路:
dp[i][j]记录以节点i为根节点,j个士兵时所能够获得的最大价值
/* *********************************************** Author :devil Created Time :2016/3/23 15:33:24 ************************************************ */ #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <vector> #include <queue> #include <set> #include <map> #include <string> #include <cmath> #include <stdlib.h> using namespace std; #define N 110 int dp[N][N],val[N],bug[N]; bool vis[N]; vector<int>eg[N]; int n,m; void init() {memset(dp,0,sizeof(dp));memset(vis,false,sizeof(vis));for(int i=1;i<=n;i++)eg[i].clear(); } void dfs(int u) {vis[u]=true;int need=(bug[u]+19)/20;for(int i=need;i<=m;i++)dp[u][i]=val[u];for(int i=0;i<eg[u].size();i++){int to=eg[u][i];if(vis[to]) continue;dfs(to);for(int j=m;j>=need;j--)for(int k=1;k+need<=j;k++)dp[u][j]=max(dp[u][j],dp[u][j-k]+dp[to][k]);} } int main() {//freopen("in.txt","r",stdin);int x,y;while(~scanf("%d%d",&n,&m)&&n!=-1){init();for(int i=1; i<=n; i++)scanf("%d%d",&bug[i],&val[i]);for(int i=1; i<n; i++){scanf("%d%d",&x,&y);eg[x].push_back(y);eg[y].push_back(x);}if(!m) printf("0\n");else{dfs(1);printf("%d\n",dp[1][m]);}}return 0; }
转载于:https://www.cnblogs.com/d-e-v-i-l/p/5311388.html
HDU1011 Starship Troopers(树形dp)相关推荐
- HDU Starship Troopers (树形DP)
Starship Troopers Time Limit : 10000/5000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) ...
- HDU 1011 Starship Troopers 树形+背包dp
http://acm.hdu.edu.cn/showproblem.php?pid=1011 题意:每个节点有两个值bug和brain,当清扫该节点的所有bug时就得到brain值,只有当父节点被 ...
- 树形DP——HDU 1011 Starship Troopers
HDU 1011 Starship Troopers 题目 http://acm.hdu.edu.cn/showproblem.php?pid=1011 作为星河战队的领导者,你被派去摧毁这些虫子的基 ...
- HDU 1011 Starship Troopers星河战队(树形dp)
题意 有n个洞穴编号为1-n,洞穴间有通道,形成了一个n-1条边的树, 洞穴的入口即根节点是1. 每个洞穴有x只bugs,并有价值y的金子,全部消灭完一个洞穴的虫子,就可以获得这个洞穴的y个金子. 现 ...
- 动态规划 —— 树形 DP
[概述] 树形动态规划是在树的数据结构上的动态规划,在各个阶段呈现树状关系的时候可以采用树形 DP,其基本思想是由子节点的信息推出父节点的信息. 树形 DP 中,是通过以下 4 点树的特点来进行建图的 ...
- BNUOJ 52305 Around the World 树形dp
题目链接: https://www.bnuoj.com/v3/problem_show.php?pid=52305 Around the World Time Limit: 20000msMemory ...
- [树形dp] Jzoj P5233 概率博弈
Description 小A和小B在玩游戏.这个游戏是这样的: 有一棵n个点的以1为根的有根树,叶子有权值.假设有m个叶子,那么树上每个叶子的权值序列就是一个1->m 的排列. 一开始在1号点有 ...
- fwt优化+树形DP HDU 5909
1 //fwt优化+树形DP HDU 5909 2 //见官方题解 3 // BestCoder Round #88 http://bestcoder.hdu.edu.cn/ 4 5 #include ...
- BZOJ 1040 ZJOI2008 骑士 树形DP
题目大意:给定一个基环树林,每一个点上有权值,要求选择一个权值和最大的点集,要求点集中的随意两个点之间不能直接相连 最大点独立集--考虑到n<=100W,网络流铁定跑不了,于是我们考虑树形DP ...
最新文章
- spring的jar各包作用
- matlab title多个标题_Matlab画图,只需要这几步
- 你了解HTTPS工作原理吗?
- 新建一个虚拟环境 用于django的项目
- 在metasploitable里面搭建ZVulDrill
- hadoop1.0集群搭建
- <论文阅读>TARE: A Hierarchical Framework for Efficiently Exploring Complex 3D Environments
- C# 之 观察者模式实例 -- 订牛奶
- 【云主机迁移原理】华为云主机迁移服务SMS的原理分析
- java解析excel文件详解_java解析excel文件的方法
- 一看就会!Matplotlib图像基础
- 射频通信中的CA中的PCC和SCC概念
- 《上古5》置业 周详诀巧风向标
- kafka-topic管理
- EasyPOI完美实现导入导出,实用简单,一行代码即可
- XSS(跨站脚本)漏洞详解之XSS跨站脚本攻击漏洞的解决
- 克林顿的竞选活动:机器学习和Java是否可以防止它们无法处理大数据?
- 视频教程-2020年软考信息安全工程师_基础知识精讲软考视频培训课程-软考
- 信息安全概论———物理安全及身份认证
- Node.js 开发实践,前端工程师的MVP利器