hdu1011】的更多相关文章

hdu1011 和 hdu1561类似,给定每个节点的花费以及价值,并且子节点必须在父亲节点取到以后才可以被取到 相当于是在树上进行的01背包 dp时考虑每一个子树 root和它的每一个儿子,状态转移方程为 dp[root][j]=max(dp[root][j],dp[root][j-k]+dp[ son[p] ][ k ]) 以下为ac代码 hdu1011:这题有一个小坑,最后必须要剩余至少一个人..开始没考虑到,一直wa #include<stdio.h> #include<iost…
hdu1011 http://acm.hdu.edu.cn/showproblem.php?pid=1011 给定n个洞穴和m个士兵(每个士兵能消灭20个bugs) 然后给定每个洞穴的bugs数量(背包的费用)和brain的数量(背包的价值) 然后给定n-1条边,使得n个洞穴形成一课树 问能取得的brain数量的最大值. 思路:其实就是在树上面进行背包问题的求解,只不过是有依赖的背包(儿子要选,当且仅当父亲也被选) 普通的01背包是这样 for(i=每件物品) for(j=每个容量) dp[i]…
Starship Troopers Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 17560    Accepted Submission(s): 4659 Problem Description You, the leader of Starship Troopers, are sent to destroy a base of t…
题目大意:给一棵有根带点权树,并且给出容量.求在不超过容量下的最大权值.前提是选完父节点才能选子节点. 题目分析:树上的分组背包. ps:特判m为0时的情况. 代码如下: # include<iostream> # include<cstdio> # include<vector> # include<cstring> # include<algorithm> using namespace std; const int N=105; const…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1011 题意:有n个洞组成一棵树,你有m个士兵,你从1号房间开始攻打,每个洞有a个"bugs"和b的价值.你的一个士兵可以打20个"bugs",为了拿到这个洞的价值b你必须留下k个士兵消灭这个洞的所有"bugs"(k*20>="bugs"的数量,且留下的士兵不可以再去攻打其他的洞,且必须攻打了前面的洞才可以攻打后面的洞).问你…
/*比较苦逼的树形DP,慢慢来吧!不着急*/#include <iostream>#include <vector>using namespace std;const int SIZE = 105; int roomNumber, trooperNumber;int cost[SIZE], brain[SIZE];int dp[SIZE][SIZE]; /*dp[u][p]表示用 P 个士兵占领以 u 为根节点的子树所能获得的概率最大值*/vector<int> adj…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1011 思路:很明显的树形背包 定义dp[root][m]表示以root为根,派m个士兵的最优解,那么dp[root][m]=max(dp[root][m],dp[root][k]+dp[son][j]) k+j<=m son为root 的孩子 树形dp的思路一般就是着父亲和孩子节点之间的转移关系,然后从dfs到叶子节点,然后开始从叶子节点向上进行DP 最重要的就是建树和dfs求解的过程,如果掌握了怎…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1011 Starship Troopers Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 23806    Accepted Submission(s): 6342 Problem Description You, the leader o…
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…
题目大意:给定一棵 N 个节点的无根树,每个节点有一个重量和一个价值,现给出一些单位,每个单位可以接受 20 个重量单位,求如何分配这些单位,使得获得的价值最大. 题解:dp 好题qwq..真的毒瘤. 状态转移很好设计,\(dp[i][j]\) 表示以 i 为根节点的子树中,分配 j 个单位可以获得的最大价值是多少,转化成分组背包. 需要注意的点如下: 对于公式\[\lfloor {n+m-1\over m} \rfloor\]与公式\[\lfloor {n-1\over m} \rfloor+…