洛谷——动态规划的背包问题P1060

血红的双手。 提交于 2019-12-06 04:17:40

2019-11-30

10:08:41

#include<bits/stdc++.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
int w[30],v[30],f[50000];
int n,m;
int main(){
    cin>>m>>n;
    for(int i=1;i<=n;++i){
        cin>>v[i]>>w[i];
        w[i] *= v[i];
    }
    //01背包
    for(int i=1;i<=n;++i){
        for(int j=m;j>=v[i];j--){
            if(j>=v[i]){
                f[j] = max(f[j],f[j-v[i]]+w[i]);
            }
        }
    } 
    cout<<f[m]<<endl;
    system("pause");
    return 0;
} 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!