二维背包(模板)

include<bits/stdc++.h>

using namespace std;
namespace{
template<typename t="">
inline void read(T &s){
T f=1;s=0;char ch=getchar();
for(;!isdigit(ch);ch=getchar()) if(ch=='-') f=-1;
for(;isdigit(ch);ch=getchar()) s=(s<<1)+(s<<3)+(ch^48);
s*=f;
}
}
#define ll long long
int m,wei,n;
int v[55],wi[55],w[55];
int f[405][405];
int main(){
read(m);read(wei);read(n);
for(int i=1;i<=n;++i){
read(v[i]);read(wi[i]);read(w[i]);
}</typename>

    for(int i=1;i<=n;++i){
        for(int j=m;j>=v[i];--j){
            for(int k=wei;k>=wi[i];--k){
                f[j][k]=max(f[j][k],f[j-v[i]][k-wi[i]]+w[i]);
            }
        }
    }
    cout << f[m][wei];
return 0;

}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务