分组背包问题
Posted programyang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分组背包问题相关的知识,希望对你有一定的参考价值。
#include<iostream> #include<algorithm> using namespace std; const int N=110; int v[N][N],w[N][N]; int s[N],n,m,f[N]; int main(void) cin>>n>>m; for(int i=1;i<=n;i++) cin>>s[i]; for(int j=0;j<s[i];j++) cin>>v[i][j]>>w[i][j]; for(int i=1;i<=n;i++) for(int j=m;j>=0;j--) for(int k=0;k<s[i];k++) if(v[i][k]<=j) f[j]=max(f[j],f[j-v[i][k]]+w[i][k]); cout<<f[m]<<endl; return 0;
以上是关于分组背包问题的主要内容,如果未能解决你的问题,请参考以下文章