背包问题模板
来源:互联网 发布:网络交换用英语怎么说 编辑:程序博客网 时间:2024/05/20 14:26
01背包模板
int main() { int i, j, n, m; while(scanf("%d",&n)!=EOF) { scanf("%d", &m); for(i=0; i<n; i++) scanf("%d%d", &wei[i],&val[i]);//wei[i]为重量,val[i]为价值 for(i=0; i<n; i++) { for(j=m; j>=wei[i]; j--) f[j] = max(f[j], f[j-wei[i]]+val[i]); } printf("%d\n",f[m]); } return 0; }
完全背包模板
int main() { int t,i,j,k,E,F,m,n; scanf("%d",&t); while(t--) { scanf("%d%d",&E,&F); int c = F-E; for(i = 0 ; i <= c ; i++) f[i]=-INF; scanf("%d",&n); for(i = 0 ; i < n ; i++) { scanf("%d%d",&val[i],&wei[i]);//val[i]为面额,wei[i]为重量 } f[0]=0; for(i =0 ; i < n ; i++) { for(j = wei[i] ; j <= c ; j++) { f[j] = max(f[j],f[j-wei[i]]+val[i]); } } } return 0; }
多重背包模板
int main() { int t,n,m,i,j,k; int w[N],pri[N],num[N],f[N]; while(~scanf("%d",&t)) { while(t--) { memset(f,0,sizeof(f)); scanf("%d%d",&n,&m);//n为总金额,m为大米种类 for(i = 0 ; i < m ; i++) { scanf("%d%d%d",&pri[i],&w[i],&num[i]);//num[i]为每种大米的袋数 } for(i = 0 ; i < m ; i++) { for(k = 0 ; k < num[i] ; k++) { for(j = n ; j >= pri[i]; j--) { f[j] = max(f[j],f[j-pri[i]]+w[i]); } } } printf("%d\n",f[n]); } } return 0; }注意装不装满和初始化有关,如果要装满就把第一项设为0,其余为负无穷
多重背包二进制优化模板
void ZeroOnePack(int cost,int wei)//01 { int i; for(i = v;i>=cost;i--) { dp[i] = max(dp[i],dp[i-cost]+wei); } } void CompletePack(int cost,int wei)//完全 { int i; for(i = cost;i<=v;i++) { dp[i] = max(dp[i],dp[i-cost]+wei); } } void MultiplePack(int cost,int wei,int cnt)//多重 { if(v<=cnt*cost)//如果总容量比这个物品的容量要小,那么这个物品可以直到取完,相当于完全背包 { CompletePack(cost,wei); return ; } else//否则就将多重背包转化为01背包 { int k = 1; while(k<=cnt) { ZeroOnePack(k*cost,k*wei); cnt = cnt-k; k = 2*k; } ZeroOnePack(cnt*cost,cnt*wei); } }
0 0
- 部分背包问题模板
- 背包问题模板
- 背包问题_模板
- 简单背包问题模板
- 背包问题标准模板
- 背包问题模板
- 背包问题模板
- 背包问题模板
- 背包问题模板
- 01背包问题模板
- 多重背包问题模板
- 背包问题模板(01背包,完全背包,多重背包)
- 背包问题--0/1背包 【模板】
- 多重背包模板题 背包问题V2
- ACM_模板_背包问题
- 二维背包问题 + 代码模板
- 背包问题总结(模板)
- 多重背包问题(含模板)
- Linux软连接和硬链接
- “GIS讲堂”第六课内容的公布
- hzau 1209 Deadline 思维@
- 分割线
- LightOJ
- 背包问题模板
- ASP.NET MVC——Entity Framework连接mysql及问题
- android 数据回传(装备选择)
- Android如何利用adb shell查询数据库内容
- Go 串口通信
- POJ3061尺取法)
- 安装pip最简单的方法
- 开源 java CMS
- Leaf——美团点评分布式ID生成系统