标签:分组背包
//a[i][j] 表示花j天做第i件事得到的收获
//m天时间得到的最大收获
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std ;
const int maxn = 110 ;
int dp[maxn] ;
int a[maxn][maxn] ;
int main()
{
int n , m ;
while(scanf("%d%d" ,&n , &m) &&(n+m))
{
for(int i = 1;i <= n;i++)
for(int j = 1;j <= m;j++)
scanf("%d" ,&a[i][j]) ;
memset(dp , 0 ,sizeof(dp)) ;
for(int i = 1;i <= n;i++)
for(int j = m;j >= 0;j--)
for(int k = 0;k <= j;k++)
dp[j] = max(dp[j] , dp[j-k] + a[i][k]) ;
cout<<dp[m]<<endl;
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
hdu1712ACboy needs your help 分组背包模板题
标签:分组背包
原文地址:http://blog.csdn.net/cq_pf/article/details/47156287