解法
分组背包模板题
分组背包模板
i->n
j->m
cin>>w[i][j]
i->n
j:m->0
k:1->j
dp=max(dp,dp[-]+w[i][k])
代码
#include <bits/stdc++.h>
using namespace std;
int dp[1000],w[1000][1000];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n,m;
while(cin>>n>>m)
{
if(n==m&&m==0)
break;
memset(dp,0,sizeof(dp));
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>w[i][j];
for(int i=1;i<=n;i++)
for(int j=m;j>=0;j--)
for(int k=1;k<=j;k++)
dp[j]=max(dp[j],dp[j-k]+w[i][k]);
cout<<dp[m]<<"
";
}
}