动态规划解决0-1背包问题
来源:互联网 发布:mac免费打谱软件 编辑:程序博客网 时间:2024/05/18 00:36
动态规划:求解一个问题的最优解,如果这个问题可以不断地分解成子问题并且这个问题的最优解包含子问题的最优解那么久可以用动态规划来解决。把所有子问题的最优解储存下来。
0-1背包:设背包容量大小C,放进去第i件物品,其重量为w,价值v。如果w>C,那么此时最优解为不放进物品i是的最优解,反之,此时最优解为不放进物品i的最优解或者是放入物品i。放入物品i时此时最优解为不放入物品i且背包容量大小为C-w时的最优解再加上物品i。
代码:
#include<iostream>using namespace std;int v[200][200];int max(int a, int b){ if(a>b) return a; return b;}int knap(int i, int W, int*v, int *w ) //决定放不放物品i,背包容量为w{ if(w[i]>W) { return knap(i-1, W, v, w); } if(i>0) { return max(knap(i-1, W, v, w), knap(i-1, W-w[i-1], v, w)+v[i-1]); } else { return 0; }}int main(){ int w[4]={2, 1, 3, 2}; //重量 int v[4]={12, 10, 20, 15}; //价值 int s; int C=5; cout << knap(4, 5, v, w);}
阅读全文
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背包问题
- 动态规划解决0-1背包问题
- 动态规划解决0_1背包问题
- 动态规划与回溯法解决0-1背包问题
- 动态规划算法解决0-1背包问题
- 动态规划法解决0-1背包问题(C++)
- 用动态规划算法解决0-1背包问题
- 基于Xposed修改微信运动步数
- Spring 集成 Axis2 1.7.5
- 图像显著性区域提取[2]-特征提取
- 对象的内存布局和访问方式
- Qt各版本官方下载地址
- 动态规划解决0-1背包问题
- Android百度地图实例详解之仿摩拜单车APP(包括附近车辆、规划路径、行驶距离、行驶轨迹记录,导航等)
- JS中的DOM
- JDK并发包中的线程池(一)
- SpringMVC学习笔记(含案例分析)
- 5.1 线性相位FIR滤波器的特性
- background的使用
- windows 信号量
- java基础学习一