0-1背包【动态规划】

作者: 编码的哲哲 | 来源:发表于2016-11-29 18:11 被阅读41次

include <iostream>

using namespace std;

int max(int x, int y){

return x>=y?x:y;

}

int main(){

cout<<"输入背包容量和物品数量"<<endl;

int m, //背包容量 
    n; //物品数量 

cin>>m>>n;

int table[n+1][m+1];//制表 

cout<<"输入物品的价值和重量:"<<endl;

int value[n+1];
int weight[n+1];

for(int i = 1; i<=n; i++) {
    
    cin>>value[i]>>weight[i];
}

for(int k = 0; k<=n; k++)
for(int kk = 0; kk<=m; kk++){
    
    table[k][kk] = 0;
}

for(int currentSelectGood = 1; currentSelectGood <= n; currentSelectGood++)
for(int currentBableCaptable = 1; currentBableCaptable <= m; currentBableCaptable++){
    
    if(currentBableCaptable >= weight[currentSelectGood]){
        
        table[currentSelectGood][currentBableCaptable] = max(table[currentSelectGood-1][currentBableCaptable], table[currentSelectGood-1][currentBableCaptable-weight[currentSelectGood]]+value[currentSelectGood]);
    }else{
        
        table[currentSelectGood][currentBableCaptable] = table[currentSelectGood-1][currentBableCaptable];
    }
}

cout<<"最大值为:"<<endl;

cout<<table[n][m];

}

相关文章

  • 动态规划

    0-1背包问题 自己实现的0-1背包问题的动态规划解法,先贴上吧,动态规划原理解释有空再写。

  • 初识动态规划

    0-1 背包问题 备忘录 动态规划-二维数组 动态规划-一维数组 0-1 背包问题升级版 回溯算法 动态规划-二维...

  • 数据结构与算法笔记day23:动态规划

    1初识动态规划 这节课的内容不涉及动态规划的理论,而是通过两个例子:0-1背包问题、0-1背包问题升级...

  • Algorithm进阶计划 -- 动态规划(下)

    经典动态规划背包问题最长子序列问题 1. 背包问题 1.1 0-1 背包问题 0-1 背包问题,描述如下: 上面...

  • 算法-动态规划-背包问题

    背包问题是基础的动态规划问题,包含了0-1背包,完全背包,多重背包等。 0-1背包 存在容量为 的背包 , 件体...

  • lintcode-k数和

    动态规划(确定0-1背包、完全背包、多重背包)0-1背包:每个元素要么出现,要么不出现,逆序遍历,数组定义为:前i...

  • 背包问题

    背包问题属于典型的动态规划问题。这里我们将详细介绍0-1背包,完全背包和多重背包问题 一、 0-1背包 有N件物品...

  • 算法3:动态规划

    5.动态规划5.1 什么是动态规划?5.2 自底向上的动态规划:5.3 自顶向下的动态规划5.4 0-1背包问题:...

  • Algorithm

    bit manipulation 动态规划 0-1背包问题 寻找最小的k个数

  • 动态规划-0-1背包问题

    动态规划-0-1背包问题 动态规划(dynamic programming)是解决多阶段决策问题常用的最优化理论,...

网友评论

    本文标题:0-1背包【动态规划】

    本文链接:https://www.haomeiwen.com/subject/xxczpttx.html