本文主要是介绍HDU 1712 ACboy needs your help (分组背包),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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;
}
这篇关于HDU 1712 ACboy needs your help (分组背包)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!