多重背包 可行性+路径记录
题意是说你要用更多的零钱去买咖啡。最后输出你分别要用的 1,5 ,10 ,25 的钱的数量。
多重背包二进制分解,然后记录下 这个状态。最后逆向推即可。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#inc...
分类:
其他好文 时间:
2014-07-14 13:52:01
阅读次数:
231
多重背包问题。
题意是给你一个数目的钱,还有一些 不同数量 也不同面额的钞票。问最接近给定 的数目,不能大于。
老样子,转换为 01 背包 和完全背包做。
不过很神奇的是,给多重背包 用二进制思想转换的时候 用 k
#include
#include
#include
#include
#include
#include
#include
#include
#i...
分类:
其他好文 时间:
2014-07-13 16:22:52
阅读次数:
133
多重背包的可行性问题。
题意是说 一块表的价格不超过M。你有一些不同数量,也不同面额的硬币。在1-M中你能组成多少种可能。
傻逼的理解成组成不超过M的最大价值。ORZ。。。认真读题……
时间复杂度 O(M*N)
#include
#include
#include
using namespace std;
int dp[2][100005];
int n,m;
...
分类:
其他好文 时间:
2014-07-13 16:19:39
阅读次数:
172
也是多重背包可行性问题。时间复杂度为 O(VN); V=背包容量,N=物品数量。
题意是说给你N个物品,每个物品有不同的价值与数量。分给两个院。
问你怎么分配才让能让价值尽量相等。
跟我上一篇解题报告是一种类型。以价值为费用,总价值的一半为背包容量。
不过物品有点多,直接开数组可能会超内存。我就用了滚动数组。
需要注意的是 you should guarant...
分类:
其他好文 时间:
2014-07-13 15:45:40
阅读次数:
208
多重背包问题。
我的背包训练第三题,多重背包。似乎有点理解多重背包了。
我对背包九讲多重背包的理解:
当某件物品 体积*数量 超过背包的容积的时候,这就做完全背包(相当于无限取)
void completepack(int h,int cost,int a)
{
for(int i=cost;i<=a;i++)
dp[i]=max(d...
分类:
其他好文 时间:
2014-07-13 00:09:57
阅读次数:
192
多重背包的可行性问题。
题意是说有 1~6 种石头,分别价值1~6 。然后有不同的数量,问你能不能平均分给两个人。
这时候可以把价值当作费用,求能不能到达 总价值的一半。即讲背包的容量设为 总价值的一半,能否装满。
据说有个很强大的“剪树” 1~6的最小公倍数是60 。
个数超过60……if(n&1)n=61; else n=60;
ORZ……没想到,也没用这个。...
分类:
其他好文 时间:
2014-07-12 21:39:06
阅读次数:
257
大概了解了背包九讲前面四章的内容。先 ORZ DD大神一分钟……59,58,57……
……3,2,1。好,结束,总结一下三种背包问题,01,完全,多重。都隶属于动态规划问题。
下面这是个人四天来的学习体会。
区别方式也很简单:
①物品数量只有一个,只存在放和不放的区别,01背包。
②物品数量有无限多个,或者能完全把背包装满,完全背包。
③物品数量有限而且不能...
分类:
其他好文 时间:
2014-07-12 17:05:33
阅读次数:
301
一个很有意思的 BFS+DFS。附 数据。
本来今天的任务是多重背包,结果为了帮别人找WA点,自己也坑在这道题上了。
最好想了一组自己都没过的数据……果断换思路了。
以箱子为起点做BFS找最短。每次DFS判断人能不能移动到箱子的后面。
开始就我写一个BFS,什么数据都过了。这组过不了
1
7 4
0 0 0 0
0 0 1 0
0 2 0 3
1...
分类:
其他好文 时间:
2014-07-12 16:57:02
阅读次数:
214
就是看能不能装满给定容量的背包。#include #include int dp[200000],a[15];int main(){ int cas=0,c; int i,j,k; while(1) { int sum=0; cas++; ...
分类:
其他好文 时间:
2014-07-12 14:35:59
阅读次数:
188
题目大意:有一头奶牛要上太空,他有很多种石头,每种石头的高度是hi,但是不能放到ai之上的高度,并且这种石头有ci个
将这些石头叠加起来,问能够达到的最高高度。
解题思路:首先对数据进行升序排序,这样才是一个标准的多重背包的问题
为什么要排序?
因为只有这样才能得到最优解,如果一开始就是高的在前面,那么后面有低的却不能选到,就直接选高的去了。这样是不能达到最优解的
使f[i]的状态标记,...
分类:
其他好文 时间:
2014-07-06 09:41:36
阅读次数:
177