动态规划——装箱问题

2023-05-16

在这里插入图片描述
使用动态规划,dp[i]记录当容积为i时的最大填充体积

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int capacity=sc.nextInt(),n=sc.nextInt();
        //输入物体的体积
        int[]objs=new int[n];
        for(int i=0;i<n;i++)
            objs[i]=sc.nextInt();
        //初始化dp数组
        int[]dp=new int[capacity+1];
        Arrays.fill(dp,0);
        //work
        for(int i=0;i<n;i++){
            for(int j=capacity;j>=objs[i];j--){
                dp[j]=Math.max(dp[j],dp[j-objs[i]]+objs[i]);
            }
        }
        System.out.println(capacity-dp[capacity]);
    }
}


当输入为10 3 4 5 8时dp数组的变化(即箱子容积为10,有三个物体,体积分别为4,5,8)

dp[0]dp[1]dp[2]dp[3]dp[4]dp[5]dp[6]dp[7]dp[8]dp[9]dp[10]
00000000000
00004444444
00004555599
00004555899

两层循环:

  1. 外层表示本轮使用第i个物体
  2. 内层表示用该物体填充各种最大容积情况下的容器
  3. dp[j]=Math.max(dp[j],dp[j-objs[i]]+objs[i]); 表示从以前的最大填充体积,和放入该物体后的最大填充体积中选取大的那个。
  4. dp[j-objs[i]]+objs[i]表示:除去该物体的体积后,剩下的容积在以前的情形下的最大填充体积 + 该物体的体积

每一轮循环(从dp[10]到dp[objs[i]] )放入物体,务必从右往左,因为从右往左参考的小的dp值是上一轮的,即参考的是以前放入物品后形成的最大填充体积,而从左往右会导致参考的dp值有可能已受本轮物品的影响,则造成二次放入,for(int j=capacity;j>=objs[i];j--)必须这样写

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

动态规划——装箱问题 的相关文章

  • svn的功能及好处,以及弊端

    1 性能提高 SVN不管文件是文本还是二进制类型 xff0c 在内部都是以二进制差异比较算法来表示文件的更新部分 这表示所有的文件在文件库中都是以差异的形式储存 而且在网络上传输的 xff0c 都是较小的文件差异部分 这也使创建分支 打标签
  • 解决virtualbox共享文件夹没有访问权限的问题

    Virtualbox是一款免费试用的虚拟机软件 基本功能完全可替代需要购买或crack的VMware 在Windows主机上用Virtualbox搭建Linux虚拟机 xff0c 虚拟机和主机之间传递文件最方便的方法就是共享文件夹 假设将W
  • debian9的dns文件默认为resolv.conf

    debian9的dns文件默认为resolv conf sudo vim etc resolv conf nameserver 114 114 114 114 nameserver 8 8 8 8 这只能暂时性的修改DNS 下次系统重启后
  • 驅動Intel無線網卡(IPW2100/IPW2200)

    分类 xff1a LINUX 2007 09 05 12 38 21 驅動 Intel 無線網卡 IPW2100 IPW2200 目前 DFB 預設並沒有安裝 wireless tools xff0c 所以請手動安裝 apt get ins
  • 解决 debian TAB 键不能自动补全命令的原因

    weixin 33928137 2015 04 23 10 46 00 512 收藏 文章标签 xff1a 操作系统 版权 预约直播 xff1a 9月9日 12日 xff0c 携手众开源社区 xff0c 开发者们的年度盛会 开源大咖与开发者
  • 为debian8.2更换官方源

    最近 xff0c 配置一个韩国vps xff0c 里面用的是163的源 xff0c 感觉不如官方的好用 xff0c 就改为官方源 地址为 xff1a ftp cn debian org 输入命令 xff1a vi etc apt sourc
  • debian装好了。之后开始js的旅程了。~

    xff5e
  • 2021-08-28

    卸载无用依赖 Ubuntu卸载软件的几种方法 xff0c 你会用哪种 xff1f 九乡河龙牙 2021 01 12 07 48 13 306 收藏 1 文章标签 xff1a 卸载无用依赖 版权 9月11日 xff0c 腾讯Techo Hub
  • Debian中apache服务,htts,认证网站

    网络技能大赛A模块第一套 xff0c 涉及到apache的配置 xff0c 认证网站 加密https网站 debian中apache配置和Centos有点不太一样 xff0c 各类配置放在子配置文件中 5 Webserver apache
  • 使用Apache转发,解决jQuery的跨域问题!

    一 下载Apache 登录Apache官网 http httpd apache org 点击 Download xff08 我下载的是最新的版本 xff09 下载Windows版本 选择下载平台 ApacheHaus 选择下载相应的32或者
  • 我在这里面写学习程序的博客了

    我在这里面写学习程序的博客了
  • 第一次参加技术类的活动应该还是在十年前

    第一次参加技术类的活动应该还是在十年前 xff0c 当时应该是参加LINUX的一个技术类的活动 具体情况想不起来了 xff0c 地点应该是在中关村上地那个地方的一个什么楼里面 xff0c 当时记的好荒凉的地方 xff0c 没有什么树木 xf
  • 提问

    程序员日记吗 xff1f 我去写日记 xff0c 说着说着 xff0c 晚上吃了个火锅 然后正事没办 就算是什么也不学 xff0c 也要写日记啊 先去提问 什么是程序 xff1f 什么是语言 xff1f 程序是怎么运行的 xff1f 程序和
  • 我遭报应了?游戏过度之后的反弹反应 其实呢?

    我遭报应了 xff1f 过度游戏的之后反应反弹 其实呢 xff1f 我队最近只要沾电子产品就会起不舒服的反应 手机放在裤兜里面 xff0c 皮肤就会疼 之前在香山住的时候 xff0c 旁边有人用电脑 xff0c 之后睡醒死就像一样了 只有在
  • php是啥

    php是啥 有没有技术树 它们的因果关系是什么 xff1f 尝试着写一下 xff1f php的基本格式是什么 PHP的环境怎么装 第一个PHP的程序怎么写 PHP的组成部分有什么 差不多就是这样的问题了吧
  • ubuntu php 乱码解决,为何访问ubuntu的apache服务器下的php文件出现乱码

    这不是 apache 的问题 是 php 本身编码 xff0c 或者 数据库编码问题 给你看一篇别人的问题 让人烦恼的 PHP 43 UTF8 乱码解决方案 088月2009 一般来说 xff0c 如果将 各个文件类型 xff0c HTML
  • easyexcel读取合并单元格

    easyexcel读取合并单元格 文章目录 easyexcel读取合并单元格一 设置读取额外信息二 重写Listener中的extra 方法 xff0c 获取合并单元格的信息三 遍历合并单元格的信息四 代码清单1 UploadDataLis
  • 【Debian 10】win10 远程连接 Debian 10

    1 查询虚拟机的IP地址 使用ifconfig 查询虚拟机的IP地址 xff1a 2 出错问题 直接连接会报错 xff1a 首先需要排除一下网络原因 xff1a Debian需要安装对应的软件才能远程连接 xff1a 3 成功连接上 安装完
  • C/C++ 中typedef关键字

    文章目录 C C 43 43 中typedef关键字1 简介2 1 常规变量类型定义2 2 指针类型定义2 3 结构体定义2 4 数组类型定义2 5 函数定义2 5 1 函数声明2 5 2 函数指针 C C 43 43 中typedef关键
  • 解决“Failed to start bean ‘documentationPluginsBootstrapper‘; nested exception is java.lang.NullPoint”

    当你的spring boot版本是2 6 x并且你的swagger版本是3 0 0以上的时候 xff0c 项目启动会报错 org springframework context ApplicationContextException Fai

随机推荐

  • 3.汇编指令:【寻址方式】立即数寻址、寄存器寻址、存储器寻址

    文章目录 指令格式指令中的 xff08 目标 源 xff09 操作数来源一 立即数寻址二 寄存器寻址三 存储器寻址3 1 直接寻址3 2 寄存器间接寻址3 3 基址寻址 xff08 寄存器相对寻址 xff1f xff09 3 4 变址寻址
  • 51单片机定时器/计数器

    一 课前须知 xff1a 1 51单片机有两组定时器 计数器 xff0c 因为既可以定时 xff0c 也可以计数 xff0c 所以称之为定时器 计数器 2 定时器 计数器和单片机CPU是相互独立的 定时器 计数器的工作过程是自动完成的 xf
  • matlab中矩阵某列最大值,MATLAB怎么取出矩阵每列中最大的数

    你说的列到底是指什么 xff1f a 61 2 3 3 6 4 9 是三行两列 xff0c a 61 2 3 3 6 4 9 如果你要得到b 61 4 9 则程序为 a 61 2 3 3 6 4 9 或者 a 61 2 3 3 6 4 9
  • debian10 安装jdk8

    下载Oracle JDK 8 在 Debian 上安装 Oracle JDK 需要从官网上下载可供安装的软件包 这里我们使用curl命令来从 Oracle 网站下载 Oracle Java 8 默认情况下curl命令工具并未在系统中安装可以
  • debian10 安装nodejs

    从Debian存储库安装Node js和npm Node js和npm可以从标准的Debian存储库安装 xff0c 在选写本文时 xff0c 存储库中的版本是v10 x xff0c 这是最新的LTS版本 要在Debian上安装Node j
  • Grafana+MySQL(3)grafana展示mysql源数据:表格展示

    背景 grafana展示mysql源数据 xff0c 且以table形式 MySQL表内数据格式如下 xff1a 表格展示 Dashboard 添加panel xff0c 右侧菜单选择 Table xff0c 添加Query xff0c 选
  • debian使用php+mysql+nginx快速搭建网站

    1 apt get update 更新插件库 2 apt get install nginx 安装nginx 3 apt get install php5 fpm php5 curl 安装php一系列拓展 xff0c 可以使用tab查看ph
  • ECS简介

    Amazon Elastic Container Service ECS 是一个有高度扩展性的容器管理服务 它可以轻松运行 停止和管理集群上的Docker容器 xff0c 你可以将容器安装在EC2 实例上 xff0c 或者使用Fargate
  • 刷爆朋友圈!程序员怒斥:凉透吧!月薪40k的Python人!

    作为一名老码农 xff0c 我的心这次凉透了 xff01 事情起因是这样的 xff1a 前天我晚上正在全国最大的同性组织某Hub上浏览时候 xff0c 发现这样的一条信息 xff1a Python 116K 超过 C 43 43 JS 薪酬
  • ABAQUS设置云图的显示

    1 单击云图选项 2 边界 指定 xff08 设定指定值 xff09 值设置的越大 xff0c 变形效果越小
  • 【Spring Boot组件集成实战】集成Druid数据库连接池和MyBatis-Plus(含代码生成器)

    更多精彩内容 xff0c 请访问 Spring Boot组件集成实战专栏 xff01 文章目录 1 MyBatis Plus产生的原因2 MyBatis Plus解决的问题3 Spring Boot集成Druid2 1 引入依赖2 2 配置
  • Nextcloud 登录后提示”服务器内部错误”

    修复日记 xff1a 公司的nextcloud重启后又崩了 202104061730修好 1 拿一个正常的nextcloud的config目录来替换成当前的config目录 2 编辑好config php文件的内容 有几个要注意的点 xff
  • Nextcloud23 内部服务器错误 4047 InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE

    本故障同适用 xff08 当更换容器端口重启后产生的 xff09 内部服务器错误 都是进数据库执行这段代码 xff1a SET GLOBAL innodb read only compressed 61 OFF 随后nextcloud恢复正
  • 软件工程中五种常用的软件开发模型整理

    软件工程期末考试复习资料整理 xff0c 顺便码了个博客 xff0c emmm 下面都是我对各位博主文章种我认为写的比较好的内容的截取 引言 软件将要经历一个定义 开发 运行维护 xff0c 直至被淘汰这样的生命周期 为了使软件生命周期中的
  • 默认的microsoft edge浏览器内如何打开IE浏览器(各大银行网银登陆时需要)

    大多数银行的企业网银都只支持IE浏览器登陆 xff0c 作为电脑小白 43 新电脑 xff0c 今天一直找不到IE浏览器的接入口 xff0c 好心累 写一个这个给和我类似的朋友们用 1 打开Microsoft edge 右上角 设置 xff
  • 各种常用的默认端口号 总结

    各种常用的默认端口号 总结 端口号的范围是从1 xff5e 65535 其中1 xff5e 1024是被RFC 3232规定好了的 xff0c 被称作 众所周知的端口 Well Known Ports xff1b 从1025 xff5e 6
  • 利用hdparm工具配合crontab使硬盘不用时休眠

    背景 xff1a 上次搞定了硬盘的自动挂载问题 xff0c 回头购入了个功率测试仪 xff0c 发现树莓派取消挂载移动硬盘后 xff0c 硬盘依然不能自动休眠 我用的是一个两盘位硬盘盒做RAID1 xff0c 运行两个3 5的2T硬盘功耗大
  • C++学习笔记

    一 基于过程的程序设计 1 1 概念及基础 pragma once 防止头文件重复包含 自定义的头文件用 34 34 xff0c 系统的用 lt gt 在标准输入流与输出流中使用控制符需要添加 include iomanip头文件 C 43
  • JAVA学习笔记

    第一章 IDEA基本配置和快捷键 IDEA快捷键 快捷键功能shift 43 F6选中目标内容后 xff0c 更改所有用到它的内容ctrl 43 Y删除当前行ctrl 43 D复制当前行Alt 43 Enter导入包自动修正代码Ctrl 4
  • 动态规划——装箱问题

    使用动态规划 xff0c dp i 记录当容积为i时的最大填充体积 span class token keyword import span java span class token punctuation span util span