hdu 1712 ACboy needs your help(很裸的分组背包,照着背包九讲套)
2012-04-27 22:35
337 查看
题目分析:有n门课程,A[i][j]表示第i们课程,用j天完成,可以得到的价值,用m天可以得到的最大价值;
把每一行当做一组物品,时间耗时当做体积,m天当做容量,
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1712
另一种:
把每一行当做一组物品,时间耗时当做体积,m天当做容量,
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1712
#include<iostream> #include<cstdio> using namespace std; int dp[10000],A[110][110]; int main() { int n,m; while(scanf("%d %d",&n,&m)!=EOF) { if(n==0&&m==0) break; 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 k=1;k<=n;k++)//每一组 for(int j=m;j>=0;j--)//代价 for(int i=1;i<=m;i++) if(j-i>=0) dp[j]=max(dp[j],dp[j-i]+A[k][i]); printf("%d\n",dp[m]); } system("pause"); return 0; }
另一种:
#include<iostream> #include<cstdio> using namespace std; int dp[10000],A[110][110]; int main() { int n,m; while(scanf("%d %d",&n,&m)!=EOF) { if(n==0&&m==0) break; 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 k=1;k<=n;k++)//每一组 for(int j=m;j>=0;j--)//代价 for(int i=1;i<=j;i++) dp[j]=max(dp[j],dp[j-i]+A[k][i]); printf("%d\n",dp[m]); } system("pause"); return 0; }
相关文章推荐
- HDU 1712 - ACboy needs your help(分组背包)
- HDU 1712 ACboy needs your help (分组背包入门题)
- HdU1712 ACboy needs your help 01分组背包
- hdu 1712 ACboy needs your help(分组背包)
- HDU 1712 ACboy needs your help 典型的分组背包
- HDU 1712 ACboy needs your help 分组背包裸题
- hdu 1712 ACboy needs your help(分组背包入门)
- hdu 1712 ACboy needs your help(分组背包)
- hdu 1712 ACboy needs your help(分组背包入门题)
- hdu1712 ACboy needs your help 我的ACM我的梦,回顾篇 分组背包
- hdu 1712 ACboy needs your help(分组背包)
- HDU 1712 ACboy needs your help (简单分组背包)
- HDU 1712 ACboy needs your help (分组背包)
- hdu 1712 ACboy needs your help (dp 分组背包)
- HDU 1712 ACboy needs your help(分组背包)
- hdu 1712 ACboy needs your help 分组背包
- hdu 1712 ACboy needs your help(分组背包)
- HDU 1712 ACboy needs your help(分组背包模板题)
- HDU 1712 ACboy needs your help-dp-(分组背包模型)
- HDU 1712 ACboy needs your help(分组背包入门题)