动态规划之完全背包

来源:互联网 发布:波士顿矩阵分析案例题 编辑:程序博客网 时间:2024/06/05 13:35

完全背包和01背包的区别是01背包的物品只能使用一次,而完全背包可以使用无限多次。
这里同样,我们最重要的就是找到状态转移方程,前面讲的01背包用滚动数组优化是强调了必须用后序遍历,是因为如果我们用前序遍历的话,就不能保证你的操作都是在上一个决策层的基础上。

#include<bits/stdc++.h>using namespace std;int main(){    int N,V;    cin>>N>>V;    vector<int>dp(1000,0);    while(N--) {        int weight,value;        cin>>weight>>value;        for(int j=weight;j<=V;j++) {//正序为完全背包            dp[j]=max(dp[j],dp[j-weight]+value);        }        cout<<dp[V]<<endl;    }    return 0;}
原创粉丝点击