HDU 1712 ACboy needs your help(分组背包经典题目)

来源:互联网 发布:电气cad软件哪个好 编辑:程序博客网 时间:2024/05/24 04:20

题目链接:http://http://acm.hdu.edu.cn/showproblem.php?pid=1712

题意:

有n门课程,m天时间

花费j天做第i门课,可以活的a[ i ][ j ] 的利益

求最大的利益


在01背吧的基础上增加了一个组

三重for循环就能搞定


#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <string>using namespace std;int a[105][105];int dp[105];int main(){int n,m;while(~scanf("%d%d",&n,&m)){if(n==0 && m==0) break;memset(a,0,sizeof(a));memset(dp,0,sizeof(dp));for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){scanf("%d",&a[i][j]);}}for(int i=1;i<=n;i++){for(int j=m;j>=1;j--){for(int k=1;k<=m;k++){if(j>=k){dp[j] = max(dp[j],dp[j-k]+a[i][k]);}}}}printf("%d\n",dp[m]);}return 0;}


0 0
原创粉丝点击