hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (dp 多重背包)
2015-07-29 13:10
531 查看
转化为01背包
二进制优化
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; struct Rice { int v,w,c; }; Rice r[120]; int dp[50000]; int main() { int t,n,m; int p,h,c; int i,j,k; scanf("%d",&t); while(t--) { scanf("%d%d",&m,&n); for(i=0;i<n;i++) { scanf("%d%d%d",&p,&h,&c); r[i].w=p; r[i].v=h; r[i].c=c; } memset(dp,-1,sizeof(dp)); dp[0]=0; int ans=0; for(i=0;i<n;i++) { for(j=0;j<r[i].c;j++) { for(k=m;k>=r[i].w;k--) { if(dp[k-r[i].w]>=0) { dp[k]=max(dp[k],dp[k-r[i].w]+r[i].v); ans=max(dp[k],ans); } } } } printf("%d\n",ans); } return 0; }
二进制优化
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; struct Rice { int v,w,c; }; Rice r[120]; int dp[50000]; int main() { int t,n,m; int p,h,c; int i,j,k; scanf("%d",&t); while(t--) { scanf("%d%d",&m,&n); for(i=0;i<n;i++) { scanf("%d%d%d",&p,&h,&c); r[i].w=p; r[i].v=h; r[i].c=c; } memset(dp,-1,sizeof(dp)); dp[0]=0; int ans=0; for(i=0;i<n;i++) { int tot=r[i].c; for(j=1;j<=tot;j*=2) { tot-=j; for(k=m;k>=j*r[i].w;k--) { if(dp[k-j*r[i].w]>=0) { /* if(k==m) { printf("%d %d..\n", j,r[i].w); } */ dp[k]=max(dp[k],dp[k-j*r[i].w]+r[i].v*j); ans=max(ans,dp[k]); } /*for(int l=0;l<=m;l++) { printf("%d ",dp[l]); } printf("\n"); */ } } //printf("%d..\n",r[i].w); if(tot!=0) { for(k=m;k>=tot*r[i].w;k--) { //printf("%d....\n",k); if(dp[k-tot*r[i].w]>=0) { dp[k]=max(dp[k],dp[k-tot*r[i].w]+r[i].v*tot); ans=max(ans,dp[k]); } } } } printf("%d\n",ans); } return 0; }
相关文章推荐
- IIS7程序发布后 之 报图表处理程序配置 [c:\TempImageFiles\] 中的临时目录无效
- Scala学习回顾(五)---- scala中的apply
- 最后一片蓝海的终极狂欢-写在Win10发布前夕
- RSA实现登录页面密码加密(ASP.NET MVC)
- Java Tree
- Web App简介
- WPF如何实现窗体透明——Opacity
- 安装交叉工具链
- 【Java】(2)Java反射
- 1407251735-hd-美素数.cpp
- iOS视图生命周期
- hdu 4405 概率dp
- 世界硬币:比特币类似的评分系统!
- iOS UITableView删除cell分割线
- php 修改上传文件大小 (max_execution_time post_max_size)
- 黑马程序员--Java--集合
- javascript一秒刷新一次显示时间
- 车牌识别技术详解五--采用LBP+HOG SVM做目标分类,车牌检测,字符检测等
- LeetCode(77) Combinations
- Mybatis + MySql 插入时获取自增的主键