博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
三种背包问题
阅读量:7124 次
发布时间:2019-06-28

本文共 1730 字,大约阅读时间需要 5 分钟。

1.0-1背包

import java.util.*;public class Main{    public static void main(String[] args) {          int N=5;        int max=10;        int[] weights={2,2,6,5,4};        int[] values={6,3,5,4,6};        int[] c=new int[max+1];        c[0]=0;        for(int i=0;i
0;j--){ if(weights[i]<=j){ c[j]=Math.max(c[j],c[j-weights[i]]+values[i]); }else{ c[j]=c[j]; } } } System.out.println(c[max]); }}

2.完全背包

import java.util.*;public class Main{    public static void main(String[] args) {          int N=5;        int max=10;        int[] weights={2,2,6,5,4};        int[] values={4,3,5,4,6};        int[] c=new int[max+1];        c[0]=0;        for(int i=0;i
0;j--){ int count=max/weights[i]; for(int k=0;k<=count;k++){ if(weights[i]*k<=j){ c[j]=Math.max(c[j],c[j-weights[i]*k]+values[i]*k); } } } } System.out.println(c[max]); }}

3.多重背包

import java.util.*;public class Main{    public static void main(String[] args) {          int N=5;        int max=10;        int[] weights={2,2,6,5,4};        int[] values={4,3,5,4,6};        int[] counts={2,3,1,2,3};        int[] c=new int[max+1];        c[0]=0;        for(int i=0;i
0;j--){ for(int k=0;k<=counts[i];k++){ if(weights[i]*k<=j){ c[j]=Math.max(c[j],c[j-weights[i]*k]+values[i]*k); } } } } System.out.println(c[max]); }}

 

转载于:https://www.cnblogs.com/xinyi-blog/p/8589121.html

你可能感兴趣的文章
viewport 最佳实践
查看>>
多feature测试时后端测试环境管理的一种方案设想
查看>>
HashMap: 通俗分析核心源码
查看>>
CSS设置居中的方案总结-超全
查看>>
Feathers 入门
查看>>
css知识:flex 、bfc
查看>>
设计模式系列之「建造者模式」
查看>>
数据结构—线性表
查看>>
Mybatis技术内幕(2.3.5):反射模块-Property工具类
查看>>
软件测试工程师的技能树
查看>>
聊聊架构
查看>>
小米4.0系统如何不Root激活xposed框架的方法
查看>>
Android跨界面共享数据——LiveData应用
查看>>
华为余承东:自产AI芯片 旗舰机比苹果、三星强
查看>>
微软Azure SQL数据仓储供优惠价格购买预留容量
查看>>
Java8ConcurrentHashMap
查看>>
数据分析Power BI数据可视化教程(三)——如何创建矩阵和表以及散点图
查看>>
NoSQL最新现状和趋势:云NoSQL数据库将成重要增长引擎
查看>>
Vue组件传值
查看>>
react-native搭建用例(非CRNA)
查看>>