OJ题目:click here~~
题意分析:分组背包入门题。N个课程,最多可使用M天的时间。给出i课程用j天所获得的profit 。 求最多使用M天的最大profit。对课程i ,1--M天的profit 只能选一个,或者不选。也就是说有的课程不上也没有关系。明显的分组背包。
AC_CODE
int x[101][101];
int main()
{
int n , m;
while(cin >> n >> m)
{
if(n == 0 && m == 0) break;
int dp[101];
int i ,j, v ,k;
for(i = 1;i <= n;i++)
for(j = 1;j <= m;j++)
scanf("%d",&x[i][j]);
memset(dp , 0 , sizeof(dp));
for(i = 1;i <= n;i++)
for(v = m;v >= 0 ;v--)
for(k = 0;k <= v;k++)
dp[v] = max(dp[v] , dp[v - k] + x[i][k]);
cout << dp[m] << endl;
}
return 0;
}