动态规划求解0-1背包
来源:互联网 发布:同花顺数据库要钱吗 编辑:程序博客网 时间:2024/06/09 06:09
/* * @fileDPKnapsack.cpp * @author/Univ.taoxiaoxiao/XMU * @date11-2-2014 * @versionv1.0*///输入测试 2 12 1 10 3 20 2 15#include <iostream>#include <fstream>using namespace std;#define N 4#define W 5int w[N+1], v[N+1];int V[N+1][W+1], b[N+1][W+1];void DPKnapsack(){int i, j;for (i = 1; i <= N; ++i){for (j = 1; j <= W; ++j){if (w[i] > j){V[i][j] = V[i - 1][j];b[i][j] = 1;}else{if (V[i - 1][j] > V[i - 1][j - w[i]] + v[i]){V[i][j] = V[i - 1][j];b[i][j] = 1;}else{V[i][j] = V[i - 1][j - w[i]] + v[i];b[i][j] = 2;}}}}}void PrintKnapsackItem(int i, int j){if (i == 0 || j == 0)return;if (b[i][j] == 2){PrintKnapsackItem(i - 1, j - w[i]);cout << i << " "; }elsePrintKnapsackItem(i - 1, j);}int main(){system("title 01背包问题");system("color 02");for (int i = 1; i <= N; ++i){cin>> w[i] >> v[i];}DPKnapsack();cout << "最大价值为: " << V[4][5] << endl;cout <<"相应的物品为: ";PrintKnapsackItem(4, 5);cout << endl;return 0;}
0 0
- 0-1背包问题,动态规划求解
- 动态规划求解0 1背包
- 动态规划求解0-1背包问题
- 动态规划求解0-1背包
- 动态规划求解0-1背包
- 0/1背包问题-----动态规划求解
- 动态规划求解0-1背包问题
- 动态规划法求解简单的(0/1)背包问题
- 用动态规划求解0-1背包问题
- 0/1背包问题(动态规划求解)
- 0/1背包问题的动态规划求解
- 用动态规划求解0-1背包问题
- Java 动态规划求解0-1背包问题
- 0-1背包问题的动态规划求解
- 动态规划法——求解0-1背包问题
- 动态规划法——求解0-1背包问题
- 动态规划算法求解0,1背包问题
- 动态规划算法求解0-1背包问题
- 链表的使用
- linux装mysql数据库
- ubuntu peizhi android
- thinkphp3.2 开发(一)
- 小明A+B_C_杭电ACM2096
- 动态规划求解0-1背包
- Android复习
- 控制台下播放bad apple by C
- 在不同版本的Linux和gcc下报错:段错误(核心已转存储)
- 二叉树(14)----由前序遍历和中序遍历重建二叉树,递归方式
- 数单词的个数
- 教你一步步搞定 Handoff
- js函数参数默认值的问题
- 多线程12___SingleThreadExecutor(单一线程执行器), 可替代 在共享资源上同步