hdu 1712 ACboy needs your help (分组背包)
来源:互联网 发布:安卓手机数据恢复系统 编辑:程序博客网 时间:2024/05/16 14:09
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1712
解题报告:只说一点主意for循环间的顺序
使用一维数组的伪代码如下:
for 所有的组k
for v=V..0
for 所有的i属于组k
f[v]=max{f[v],f[v-c[i]]+w[i]} 注意这里的三层循环的顺序
“for v=V..0”这一层循环必须在“for 所有的i属于组k”之外。
这样才能保证每一组内的物品最多只有一个会被添加到背包中。
code:
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int A[105][105],dp[105];int N,M;int main(){while(scanf("%d%d",&N,&M)&&(N||M)){memset(A,0,sizeof(A));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>=1;j--)for(int k=1;k<=j;k++)dp[j]=max(dp[j],dp[j-k]+A[i][k]);printf("%d\n",dp[M]);}return 0;}
- 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(分组背包)
- 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 (分组背包)
- hdu 1712 ACboy needs your help(分组背包)
- hdu 1712ACboy 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 4638 Group (树状数组+离线)
- HDU3371 Connect the Cities 解题报告--prim
- POJ 3678 - Katu Puzzle 比较典型的构图2-sat...求是否有可行解
- 系统二级运维之业务单据错误处理
- 【jquery mobile笔记二】jquery mobile调用豆瓣api示例
- hdu 1712 ACboy needs your help (分组背包)
- 【树形DP】 HDU 4118 Holiday's Accommodation
- 跟我学ios 开发 (一)
- 已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10()
- HDU1233 还是畅通工程 解题报告--prim
- hdu 3049 Data Processing(扩展欧几里德求逆元)
- poj3181(完全背包)
- win7用户文件夹转移到D盘
- Cocos2d-iphone 为sprite添加双击的事件响应