经典0-1背包问题(动态规划)

这是一道关于0-1背包问题的实际应用题目,来自京东2016年的实习生面试。问题中,糖果有A1和A2两种类型,体积不同,魔幻因子含量各异。分销商小东需要在货车容量限制下,采购魔幻因子总量最高的糖果组合。该问题可以通过动态规划方法解决,旨在最大化货车内糖果的魔幻因子总和。
摘要由CSDN通过智能技术生成

买糖果(京东2016实习生真题)

题目描述

某糖果公司专门生产儿童糖果,它最受儿童欢迎的糖果有A1、A2两个序列,均采用盒式包装。包装好的A1类糖果体积为一个存储单位,而包装好的A2类糖果体积正好是A1类的两倍。

这两类糖果之所以广受儿童欢迎,是因为糖果中含有公司独家研发的魔幻因子。A1或A2序列中的糖果,看起来包装可能是一样的,但因为其中的魔幻因子含量不同被细分为不同的产品。

临近传统节日,公司的糖果供不应求。作为一个精明的糖果分销商,小东希望能够借此大赚一笔,于是带着现金开着货车来公司提货。货车的容量是确定的,小东希望采购的糖果能够尽可能装满货车,且糖果的魔幻因子总含量最高。只要不超出货车容量,糖果总可以装入货车中。

小东希望你能帮她解决这一问题。

在这里插入图片描述

import java.util.Scanner;

/**
 * 标准的0-1背包问题,使用动态规划解决!
 *
 *
 */
public class Main{
   
    public static void main(String[] args){
   
        Scanner input = new Scanner(System.in);
        while(input.hasNextInt()){
   

            // 1、从键盘获取输入,顺便判断容量是否能装下所有糖果(节约内存!)
            //      若不进行判断提交时会有内存溢出问题
            int n = input.nextInt();
            int v = input.nextInt();

            int[] nums = new int[n];
            int[] weights = new 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值