几乎01背包模板啦兄弟们,
小小变化:(体积和价值的选择)
for(int i=1;i<=m;i++){
cin>>v[i]>>w[i];//"体积"
w[i]*=v[i];//"价值 "
}
ACcode:
#include<bits/stdc++.h>
using namespace std;
const int N=3e4+10,M=30;
int f[N],w[M],v[M],n,m;
void solve() {
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>v[i]>>w[i];//"体积"
w[i]*=v[i];//"价值 "
}
//01背包
for(int i=1;i<=m;i++){//物品
for(int j=n;j>=v[i];j--){//体积
f[j]=max(f[j],f[j-v[i]]+w[i]);
}
}
cout<<f[n]<<"\n";
}
int main() {
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
solve();
return 0;
}
over~