
背包
文章平均质量分 63
aGoshawk
生命不息,奋斗不止!
展开
-
hdu2639——Bone Collector II——————【01背包、第k优解】
/** 解题思路:由于是让求第k优解问题,所以这里不再用转移方程,而是将转移过程转化成加入该件物品形成的有序序列tmpa[]和不加入该件物品形成的有序序列tmpb[]合并的过程。引用看到的一个例子:”如果想在全校找前十名的学生,只需要将各班的前十名合并后找前十即可“。*//** 题目大意:给你t组测试数据,每组测试数据包含n,v,k。然后是两行分别代表第i件物品的价值和原创 2015-01-27 17:05:42 · 624 阅读 · 0 评论 -
hdu3466——Proud Merchants——————【01背包排序】
/** 解题思路:明显的01背包,但是这个有一个金额限制,所以不仅仅是01背包,因为转移方程应为 for(int k=0;k for(int i=V;i>=items[k].q ;i--){ dp[i]=max(dp[i],dp[i-items[k].p]+val); }要保证无后效性,需要让dp[i-items[k].p]比dp[i原创 2015-01-28 11:54:54 · 709 阅读 · 0 评论 -
hdu2955——Robbers——————【01背包】
/** 解题思路:这道题是01背包的变型。通常的题目是dp[i]代表背包装重量为i的物品的价值。而这个题目是将价值作为背包容量,将不被捉到的概率作为背包的值。状态转移方程为dp[j]=max(dp[j],dp[j-cost]*weight)。*/题目大意:有人想抢劫银行,给定T,代表T组测试样例,给定一个概率P即抢劫被捉概率要控制在该概率内,给一个n即有几个抢劫目标,下边n行分原创 2015-01-26 16:12:06 · 566 阅读 · 0 评论 -
hdu2126——Buy the souvenirs——————【01背包记录物品最多时种数】
/** 解题思路:多加一维表示物品个数。dp[j][k]代表背包容量为j,物品个数为k时的组合种类数目。*//* 题目大意:给你n种物品,有m块钱,然后给出n种物品的花费,问物品个数最多时的组合种数有多少。*/#include#include#includeusing namespace std;#define maxn 550int dp[max原创 2015-01-28 18:54:54 · 656 阅读 · 0 评论