hdu 1011 Starship Troopers(树上背包)】的更多相关文章

Problem Description You, the leader of Starship Troopers, are sent to destroy a base of the bugs. The base is built underground. It is actually a huge cavern, which consists of many rooms connected with tunnels. Each room is occupied by some bugs, an…
Starship Troopers Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 20833    Accepted Submission(s): 5550 Problem Description   You, the leader of Starship Troopers, are sent to destroy a base of…
Starship Troopers Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Problem Description You, the leader of Starship Troopers, are sent to destroy a base of the bugs. The base is built underground. It is actually a h…
http://acm.hdu.edu.cn/showproblem.php?pid=1011   题意:每个节点有两个值bug和brain,当清扫该节点的所有bug时就得到brain值,只有当父节点被清空时,才可以清扫它          的子节点,而清扫需要一定的人员.给定M个人员,N个结点的树,求最大brain和   这看起来是一道非常简单的背包dp 但是 写完提交wa之后,我发现这道题,并不简单!因为他的题意并不是完全和我找到的题意一样(我承认我语文很差劲所以随便找个题解看题意..),题目…
You, the leader of Starship Troopers, are sent to destroy a base of the bugs. The base is built underground. It is actually a huge cavern, which consists of many rooms connected with tunnels. Each room is occupied by some bugs, and their brains hide…
Starship Troopers Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 15457    Accepted Submission(s): 4152 Problem Description You, the leader of Starship Troopers, are sent to destroy a base of t…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1011 题意: 题目大意是有n个房间组成一棵树,你有m个士兵,从1号房间开始让士兵向相邻的房间出发,每个房间里有一个代价,代价是值/20个士兵, 同时有一个价值,问你花费这m个士兵可以得到的最大价值是多少. 思路: 树上背包,这题比较坑爹.士兵为0,输出0.要是一个房间的cost不足20的倍数也要补全20的倍数. dp[i][j]表示以i节点为子树的root使用j个士兵的最大价值( 不用管父节点 ),…
Starship Troopers Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 11476    Accepted Submission(s): 3166  Problem Description You, the leader of Starship Troopers, are sent to destroy a base of…
Starship Troopers Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 17498    Accepted Submission(s): 4644 Problem Description You, the leader of Starship Troopers, are sent to destroy a base of t…
Starship Troopers Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 19362 Accepted Submission(s): 5130 Problem Description You, the leader of Starship Troopers, are sent to destroy a base of the bu…
Starship Troopers Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 8540    Accepted Submission(s): 2379 Problem Description You, the leader of Starship Troopers, are sent to destroy a base of t…
本文出自   http://blog.csdn.net/shuangde800 题目链接 : hdu-1011   题意 有n个洞穴编号为1-n,洞穴间有通道,形成了一个n-1条边的树, 洞穴的入口即根节点是1. 每个洞穴有x只bugs,并有价值y的金子,全部消灭完一个洞穴的虫子,就可以获得这个洞穴的y个金子. 现在要派m个战士去找金子,从入口进入.每次只有消灭完当前洞穴的所有虫子,才可以选择进入下一个洞穴. 一个战士可以消灭20只虫子,如果要杀死x只虫子,那么要x/20向上取整即(x+19)/…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1011 dp[u][i]为以u为根节点的,花了不超过i元钱能够得到的最大价值 因为题目里说要访问子节点必须先访问根节点,所以 dp[u][i+j] = max(dp[u][i],dp[u][i]+dp[v][j]); v是u的儿子节点. 代码: import java.util.*; import static java.lang.Math.*; class Graph{ ArrayList<Arra…
本来是一道很水的树形DP题 设dp[i][j]表示,带着j个人去攻打以节点i为根的子树的最大收益 结果wa了一整晚 原因: 坑点1: 即使这个节点里面没有守卫,你如果想获得这个节点的收益,你还是必须派一个人去这个节点,不然谁帮你去拿收益? 坑点2: 题目说是从节点1开始攻打,然后我就以为给出的数据都是以1为根节点的,就没有加双向边 不过, 最后我加了双向边,然后还是wa了 又找了很久,最后发现是前向星的数组开小了 注意:数组开小了可能会返回wa,tle,re等等等等 #include<cstdi…
题意 有n个洞穴编号为1-n,洞穴间有通道,形成了一个n-1条边的树, 洞穴的入口即根节点是1. 每个洞穴有x只bugs,并有价值y的金子,全部消灭完一个洞穴的虫子,就可以获得这个洞穴的y个金子. 现在要派m个战士去找金子,从入口进入.每次只有消灭完当前洞穴的所有虫子,才可以选择进入下一个洞穴. 一个战士可以消灭20只虫子,如果要杀死x只虫子,那么要x/20向上取整即(x+19)/20个战士. 如果要获得某个洞穴的金子,必须留下足够杀死所有虫子的战士数量, 即(x+19)/20个战士,然后这些留…
Starship Troopers Problem Description You, the leader of Starship Troopers, are sent to destroy a base of the bugs. The base is built underground. It is actually a huge cavern, which consists of many rooms connected with tunnels. Each room is occupie…
题目链接 题意:给你一棵树(必须从根节点出发),每个节点上都有bug和value,你有m个骑士,每个骑士能消灭20个bug,你必须消灭该节点的全部bug才能拿到该节点的value,问最多能拿到value是多少. 思路:典型的背包dp ,  dp[n][m]=max(dp[n][m-x]+value,dp[n][m]) #include<iostream> #include<cstdio> using namespace std; #define N 110 #define INF…
给你一颗大小为n(3000)的树,树上每个点有点权(100000),再给你一个数m(100000) i为1~m,问树中是否存在一个子图,使得权值为i. 每次solve到一个节点 用一个bitset维护所有经过它的链的取值(calc前要先初始化当前节点的bitset) 复杂度为nlognm/64 #include <bits/stdc++.h> using namespace std; #define ll long long #define ull unsigned long long #de…
第一道树形DP.很容易理解. #include <cstdio> #include <cstring> #include <cstdlib> #define MAXN 105 typedef struct { int n, p; } room_t; room_t rooms[MAXN]; int adj[MAXN][MAXN]; int dp[MAXN][MAXN]; bool visit[MAXN]; int n, m; int max(int a, int b) {…
题目链接:  HDU 1011 树形背包(DP) Starship Troopers 题意:  地图中有一些房间, 每个房间有一定的bugs和得到brains的可能性值, 一个人带领m支军队从入口(房间1)进入, 只有到达某个房间并且将bugs全部杀死, 才能得到相应该的值. 问最多能获得多少可能性值. PS  1). 一支军队能杀死 20 bugs,  当一支军队发生战争之后就不能再到其它地方去了 2) . 不能走回头路 分析:  [树形背包] 用dp[i][j]表示到达房间 i 的军队数为…
Starship Troopers Time Limit: 5000ms Memory Limit: 32768KB This problem will be judged on HDU. Original ID: 101164-bit integer IO format: %I64d      Java class name: Main     You, the leader of Starship Troopers, are sent to destroy a base of the bug…
Starship Troopers Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 15065 Accepted Submission(s): 4046 Problem Description You, the leader of Starship Troopers, are sent to destroy a base of the bu…
Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 14426    Accepted Submission(s): 3887 Problem Description You, the leader of Starship Troopers, are sent to destroy a base of the bugs. The base…
题目大概说一棵n个结点的树,每个结点都可以安装某一规格的一个塔,塔有价格和能量两个属性.现在一个敌人从1点出发但不知道他会怎么走,如果他经过一个结点的塔那他就会被塔攻击失去塔能量的HP,如果HP小于等于0敌人就挂了.任务就是在总花费不超过m的条件下在各个结点安装塔,求能预防的敌人的HP的最大值. 状态容易表示,dp[u][m]表示在结点u为根的子树中花费m能预防的最大的HP 转移显然又是树上背包了,不过略麻烦,想清楚的话还是能比较快地写完: u子树从它孩子结点的子树的最小值中转移过来,因为各个孩…
Problem Description You, the leader of Starship Troopers, are sent to destroy a base of the bugs. The base is built underground. It is actually a huge cavern, which consists of many rooms connected with tunnels. Each room is occupied by some bugs, an…
HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票(记住,仅仅有一张钞票),为了防止自己在战斗中频繁的死掉,他决定给自己买一些道具,于是他来到了地精商店前. 死亡骑士:"我要买道具!" 地精商人:"我们这里有三种道具,血瓶150块一个,魔法药200块一个,无敌药水350块一个." 死亡骑士:"好的,给我一个血…
树上背包 #include<bits/stdc++.h> using namespace std; ; const int inf=0x3f3f3f3f; vector<int> son[N]; int f[N][N],s[N],n,m; void dfs(int u){ f[u][]=; ;i<son[u].size();i++){ int v=son[u][i]; dfs(v); ;j--) ;k--) ) f[u][j]=max(f[u][j],f[u][j-k]+f[…
几何+博弈的简单组合技 给出n个圆,有包含关系,以这个关系做游戏,每次操作可以选择把一个圆及它内部的圆全部删除,不能操作者输. 圆的包含关系显然可以看做是树型结构,所以也就是树上删边的游戏. 而找圆的包含关系,这题数据不大可用n^2复杂度找.也可以用扫描线,实时记录其节点父亲的情况.3种情况分类讨论一下就可以了. /** @Date : 2017-10-18 20:21:54 * @FileName: HDU 5299 圆扫描线+树上删边.cpp * @Platform: Windows * @…
BZOJ 4753 [Jsoi2016]最佳团体 | 树上背包 分数规划 又是一道卡精度卡得我头皮发麻的题-- 题面(--蜜汁改编版) YL大哥是24OI的大哥,有一天,他想要从\(N\)个候选人中选\(K\)个小弟(\(N, K \le 2500\)). 想要成为大哥的小弟不是件容易事,必须要有一个举荐人才行,所以每个候选人\(i\)都有一个另一个候选人\(R_i\)作为举荐人,只有当举荐人\(R_i\)被大哥选为小弟时,候选人\(i\)才有可能被选. 每个候选人都有一个选取代价\(S_i\)…
洛谷 P2015 二叉苹果树 (树上背包) 一道树形DP,本来因为是二叉,其实不需要用树上背包来干(其实即使是多叉也可以多叉转二叉),但是最近都刷树上背包的题,所以用了树上背包. 首先,定义状态\(dp[x][i]\)表示在节点\(x\)保留\(i\)个边所获得的最大苹果数,定义状态时一定要选对状态并且定义清晰(状态中包括了当前节点吗?目标状态是怎样的?).一开始我就是因为状态定义错误,所以卡了半天,之后重新定义状态后几分钟就切了这道题. 然后是普通的树上背包状态转移 \[ dp[x][i]=m…