经典01背包

#include <bits/stdc++.h>
using namespace std;
const int maxn = 100;//物品最大数
const int maxv = 1000;//容器v的上限 
int w[maxn],c[maxn],dp[maxn];
int main()
{
    ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    int n,v;//n为物品数目,v为能够容纳的最大重量 
    cin>>n>>v;
    for(int i=1;i<=n;i++)
    cin>>w[i];
    for(int i=1;i<=n;i++)
    cin>>c[i];
    for(int i=1;i<=n;i++){
        for(int j=v;j>=w[i];j--)
        dp[j] = max(dp[j],dp[j-w[i]]+c[i]);//转换方程 
    } 
    cout<<dp[v]<<endl;
    return 0;
 } 

 

posted @ 2020-08-31 16:30  zmachine  阅读(115)  评论(0编辑  收藏  举报