算法导论16.2-2 0-1背包问题
来源:互联网 发布:java判断float整数 编辑:程序博客网 时间:2024/05/18 14:45
0-1背包问题使用动态规划算法。
空间未优化的代码:
#include<iostream>using namespace std;int Max(int i,int j){return i>j?i:j;}void KnapSack(int *w,int *p,int (*f)[30],int length,int volume){int i,j;for(i=w[1];i<=volume;i++){f[1][i]=w[1]*p[1];}for(i=2;i<=length;i++){for(j=volume;j>=0;j--){if(j>=w[i]){f[i][j]=Max(f[i-1][j],f[i-1][j-w[i]]+w[i]*p[i]);}else{f[i][j]=f[i-1][j];}}}}int main(){int w[11]={0,4,5,6,3,2,7,8,9,10,11};int p[11]={0,5,6,2,3,1,4,8,7,5,6};int w1[6]={0,1,2,3,4,5};int p1[6]={0,5,4,3,2,1};int W=25;int W1=6;int f[30][30]={0};KnapSack(w,p,f,10,W);cout<<f[10][25]<<endl;}
空间进行优化后的代码:
//01pack//此代码可以更加优化#include<iostream>using namespace std;double max(double a,double b){return a>b? a:b;}//假设每件物品的重量为正整数double EasyPack(int volume,int n,int Weight[],double Cost[]){double Total_Value[10000]={0};int i,j;for(i=0;i<n;i++){for(j=volume;j>=0;j--){if(j>=Weight[i])Total_Value[j]=max(Total_Value[j],Total_Value[j-Weight[i]]+Weight[i]*Cost[i]);}}return Total_Value[volume];}int main(){//volume 为背包的容量,n为物品的数量,且每种物品只有一件int volume,n;//Cost[i]为第i件物品的价格double Cost[10000];//Weight[i]为第i件物品的重量,此处的重量假设都为整型int Weight[10000];int w[10]={4,5,6,3,2,7,8,9,10,11};int p[10]={5,6,2,3,1,4,8,7,5,6};while(cin>>volume>>n){int i;for(i=0;i<n;i++){cin>>Weight[i]>>Cost[i];}double sum=EasyPack(volume,n,Weight,Cost);cout<<sum<<endl;}return 0;}
- 算法导论16.2-2 0-1背包问题
- 【算法导论】0-1背包问题
- 算法导论答案 16.2-2 0-1背包问题的动态规划算法
- 【算法导论】0-1背包问题 与 部分背包
- 【算法导论】0-1背包问题 与 部分背包
- 算法导论16.2-2--动态规划(0-1背包问题)
- 算法导论第十六章贪心算法-0-1背包问题
- 算法导论-----------------0-1背包问题dp求解
- 算法导论--动态规划(0-1背包问题)
- 《算法导论》之动态规划和贪心算法 0-1背包问题
- 算法导论第16章 贪心算法-0-1背包问题—动态规划求解
- 【算法导论】贪心算法之背包问题
- 《算法导论》第15章-动态规划之0-1背包问题
- 算法0-1背包问题:
- 【算法】0-1背包问题
- 算法 0-1背包问题
- 算法导论-16.2-6 在O(n)时间内求解分数背包问题
- 算法导论_01背包问题.(动态规划)
- C# html解析器 ,解析HTML的各种工具比较。
- NSString 函数整理
- C语言字符数组移位
- NSArray 函数整理 .
- net.sf.hibernate.HibernateException: Illegal attempt to associate a collection with two open session
- 算法导论16.2-2 0-1背包问题
- [BFS] hdu 1253 胜利大逃亡
- gcc编译优化参数
- NSDictionary+plist简单示例 .
- 虚幻4引擎
- DOM对象和jQuery对象的转换
- Hibernate 一对多问题
- SqlHelper使用方法(转)
- 设置PATH