dp 背包问题01的优化
2017-02-03 22:45
253 查看
不多说,直接上代码!
#include <iostream> #include <cstdio> #include <algorithm> using namespace std; #define MAXN 110 int f[MAXN*MAXN]; int dp(int N, int M, int *weight, int *vaule); int main() { int N, M; int weight[MAXN], vaule[MAXN]; scanf("%d%d", &N, &M); for(int i=1; i<=N; i++) { scanf("%d%d", &weight[i], &vaule[i]); } printf("%d\n", dp(N, M, weight, vaule)); return 0; } int dp(int N, int M, int *weight, int *vaule) { for(int i=1; i<=N; i++) { for(int j=M; j>=1; j--)//**注意这里是倒序,坑惨我了** { if(weight[i] <= j) { f[j] = max(f[j], f[j-weight[i]]+vaule[i]); } } } return f[M]; }
相关文章推荐
- 01背包问题——经典DP问题,优化与未优化
- 01背包问题的优化解法
- 九度OJ 1152:点菜问题 (01背包、DP)
- 01背包问题及空间优化
- 01背包问题优化
- 夕拾算法进阶篇:17)01背包和完全背包问题 (动态规划DP)
- 01背包问题——<DP>
- BZOJ3163&Codevs1886: [Heoi2013]Eden的新背包问题[分治优化dp]
- DP优化--背包问题
- DP背包问题小结(01背包,完全背包,需恰好装满或不需,一维DP、二维DP)
- 01背包问题,dp和贪心解法(c++11)
- 01背包问题的分析与优化
- DP实例之01背包问题C语言实现
- 动态规划7:砝码和种类优化成01背包问题
- HDU 2546 饭卡 【入门DP之01背包问题】
- 01背包问题 第一次DP
- 01背包问题的一般DP求解
- dp中滚动数组的应用:01背包、POJ 1159 Palindrome、多段图路径问题
- 夕拾算法进阶篇:18)装箱问题 (01背包_动态规划DP)
- 061_改变DP对象的01背包问题