![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
背包
文章平均质量分 78
iYUNDI
iYUNDI
展开
-
[hoj]1485 A Good Helper[背包问题]
#include #include int f[1001]; int max(int a,int b) { return (a>b?a:b); } void swap(int &a,int &b) { int c = a; a = b; b = c; } int main() { int i,j,m,n,x,v[1001],big=1,total,tmp转载 2013-07-27 15:55:16 · 968 阅读 · 0 评论 -
[poj 1742]Coins多重背包优化解法两则
用普通的多重背包会TLE. 优化如下: //这道题主要是由于cost 和 weight 是一样的,而且只问是否可以凑到该数. //将dp数组设为bool类型,只要可以达到,便记为1,否则为0. //初始条件是dp[0] = 1;表示0 dollars 总是可以凑出的~ //转移方程是 dp[i] |= dp[i-A[i]];表示对于前i个面值的所有硬币, //总钱数i可以凑出的条件: //原创 2013-07-29 00:27:16 · 773 阅读 · 0 评论 -
[poj 1014]Dividing的DFS解法解读和DP解法
转载来源: http://blog.csdn.net/lyy289065406/article/details/6661449 这道题比较特殊,用DFS也是对的,而且可以进行优化,即使直接n[i]--也是对的.解释见注释. //Memory Time //440K 16MS /*DFS*/ #include using namespace std;转载 2013-07-28 17:16:48 · 1223 阅读 · 0 评论 -
[CF 3B]Lorry[Greedy]
题意: 给出n个物品,背包容量为v; 每个物品体积ti为1或者2, 价值为pi 求背包中所能装物品的最大价值. 思路: 贪心:经过分析可以发现,拿物品的优先顺序是不会交换的----如果要拿此种物品,必然拿剩下的此种物品中单位价格最高的.同时考虑拿两种物品时,差异只在于拿物品的数量. 因此可以分别存储,降序排序后计算前i项和(i = 1 .. n),然后枚举进行匹配,最大的一组即原创 2013-08-06 15:54:28 · 983 阅读 · 0 评论