0-1背包问题
2016-05-08 14:48
246 查看
public static void pack0_1(int[] v,int[] w,int cap) { int n = v.length; if(n<=0 || cap<=0) { System.out.println(0);//不存在物品或背包容量小于等于0 return; } int[] f = new int[cap+1]; for(int i = 0;i<n;i++) { for(int j = cap;j>0;j--) { if(j<w[i]) continue; int max = Math.max(f[j], f[j-w[i]]+v[i]);//状态转移方程 f[j] = max; } } System.out.println(f[cap]); //输出能获取的最大值 }
相关文章推荐
- 【POJ3237】Tree(树链剖分+线段树)
- 【Android】做一款类似我要当学霸里的学习监督的APP
- 发布 学习进度条 博客要求
- DayDayUP_linux运维_将linux默认python升级到所需版本
- CentOS6.5安装HBase集群及多HMaster配置
- Android之Volley框架源码分析
- C# DateTime的 ParseExact和 TryParseExact 使用说明
- oracle创建表空间
- require.js
- 设计模式(7)--策略模式(2)
- 硬盘的存储原理和内部架构
- [Unity热更新]tolua# & LuaFramework(十):扩展工具包
- HDU 3853 LOOPS 概率dp
- IOs内存管理(二)
- 解决POC脚本对多种URL的自适应问题
- WIN10 IE,EDGGE,应用商店无法拨号上网解决
- AC Milan VS Juventus(模拟)
- HTML5的思考
- linux 基本常用命令整理
- Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突