动态规划的基本思想:将一个问题分解为子问题递归求解,且将中间结果保存以避免反复计算。通经常使用来求最优解,且最优解的局部也是最优的。求解过程产生多个决策序列,下一步总是依赖上一步的结果,自底向上的求解。动态规划算法可分解成从先到后的4个步骤:1. 描写叙述一个最优解的结构,寻找子问题,对问题进行划分...
分类:
其他好文 时间:
2014-09-04 14:33:19
阅读次数:
91
多多想看N个动画片,她对这些动画片有不同喜欢程度,而且播放时长也不同她的舅舅只能给她买其中M个(不多不少恰好M个),问在限定时间内观看动画片,她能得到的最大价值是多少如果她不能在限定时间内看完买回来的动画片,则输出0这里借用大牛的背包九讲的讲义,讲的很清楚问题二维费用的背包问题是指:对于每件物品,具...
分类:
其他好文 时间:
2014-09-02 00:04:43
阅读次数:
301
一、背包问题
1、Wikioi 1014 装箱问题
题目描述 Description
有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。
要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。
输入描述 Input Description
一个整数v,表示箱子容量
一个整数n...
分类:
其他好文 时间:
2014-09-01 09:21:52
阅读次数:
294
这是到动态规划的题目,属于有顺序的0 1 背包问题;代码: 1 #include 2 #include 3 4 int d[20][100000]; //d[i][j] 5 int a[20]; 6 int N; 7 8 int max(int a, int b) 9 {10 retu...
分类:
其他好文 时间:
2014-08-31 22:47:22
阅读次数:
223
动态规划的基本思想:将一个问题分解为子问题递归求解,且将中间结果保存以避免反复计算。通经常使用来求最优解,且最优解的局部也是最优的。求解过程产生多个决策序列,下一步总是依赖上一步的结果,自底向上的求解。动态规划算法可分解成从先到后的4个步骤:1. 描写叙述一个最优解的结构,寻找子问题,对问题进行划分...
分类:
其他好文 时间:
2014-08-31 11:46:41
阅读次数:
149
完全背包问题 解决方法 跟初级硬币问题递推法 很相似,只需将1改成 对应的数值。
value 背包价值, v体积, n种背包, 体积不超过V,最大价值。
void WKnapsack(int *value, int* v, int n, int V)
{
int d[1000];
memset(d, 0, sizeof(int)*1000);
for(int i = ...
分类:
其他好文 时间:
2014-08-30 08:51:13
阅读次数:
218
01完全背包问题。
主要是求有多少种组合。二维dp做的人多了,这里使用一维dp就可以了。
一维的转换方程:dp[j] = dp[j-i] + dp[j];其中i代表重量,j代表当前背包容量。
意思就是dp[j-i] 代表j-i背包重量的时候最多的组合数,那么如果到了背包容量为j的时候,就是可以把第i个物品装进背包,那么就有dp[j-i]种装法,
如果没有i物品之前,那么容量为j的...
分类:
其他好文 时间:
2014-08-29 13:11:27
阅读次数:
142
问题描述:一个背包可承重W,现有n件东西,东西 i 的价值为 vi,重量为wi。现在从这n件东西中拿出几件装到背包中,问可获得的最大价值?举例:W = 3, n = 3;东西的价值vi wi3 44 55 6DP的解法:先从递归的角度理解这个问题,然后在贴上非递归的模板。现在为东西编号:0 ...
分类:
其他好文 时间:
2014-08-29 00:01:16
阅读次数:
251
在hihocoder上面两期的题目,一个01背包问题,一个完全背包问题。总结一下!...
分类:
其他好文 时间:
2014-08-27 10:58:17
阅读次数:
187
01背包问题:推荐资料《背包问题九讲》
#include
using namespace std;
int cost,ans,val,n,V,f[12890];
int maxm(int a,int b){
if(a>b) return a;
return b;
}
int main(){
cin>>n>>V;
for(int i=0;i<n;i++){
...
分类:
其他好文 时间:
2014-08-26 17:20:56
阅读次数:
279