摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1011题意:是有n个洞组成一棵树,你有m个士兵,你从1号房间开始攻打,每个洞有a个"bugs"和b的价值。你的一个士兵可以打20个"bugs",为了拿到这个洞的价值b你必须留下k个士兵消灭这个洞的所有"bugs"(k*20>="bugs"的数量,且留下的士兵不可以再去攻打其他的洞,且必须攻打了前面的洞才可以攻打后面的洞)。问你花费这m个士兵可以得到的最大价值是多少。dp方程:dp[p][j]=max(dp[p][j],dp[ 阅读全文
posted @ 2012-08-18 19:19 qijinbiao1 阅读(4615) 评论(1) 推荐(1) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1561 1 #include <iostream> 2 #include <vector> 3 #include <cstring> 4 #include <cstdio> 5 using namespace std; 6 const int Ni = 210; 7 int n,m; 8 int dp[Ni][Ni]; 9 bool vis[Ni];10 vector<int> dv[Ni];11 void dfs(int p)12 {13 int 阅读全文
posted @ 2012-08-18 16:09 qijinbiao1 阅读(711) 评论(0) 推荐(0) 编辑