首页 > 其他分享 >P5454 [THUPC2018] 城市地铁规划 引发的思考--zhengjun

P5454 [THUPC2018] 城市地铁规划 引发的思考--zhengjun

时间:2023-07-04 22:12:09浏览次数:38  
标签:-- THUPC2018 times zhengjun 体积 物品

有如下背包问题:

  • \(n\) 种物品,体积为 \(v_i\),价值为 \(w_i\),不限量,要求选 \(m\) 件物品,且总体积为 \(V\),求总价值的最大(小)值。

解决方法:

  • 不妨令 \(v_i\) 升序,首先先选 \(m\) 个 \(1\) 号物品,计算体积 \(V_0=m\times v_1\),然后每选一件物品,就替换掉一件 \(1\) 号物品。

转移式:\(f_{i+v_j-v_1}\leftarrow f_i+w_j-w_1,j>1\)

初始:\(f_{m\times v_1}=m\times w_1\)

答案:\(f_V\)

复杂度:时间-\(O(nV)\),空间-\(O(V)\)。

这样即可确保最终物品个数恰为 \(m\),且体积为 \(V\)。

但是,这样做有条件,就是说不能达到所有的 \(v_1\) 都被替换了之后,体积没到 \(V\),造成继续替换的后果。

所以,前提条件:\(v_2\times m \ge V\),即要么都选 \(v_2\),要么必有 \(v_1\)。

标签:--,THUPC2018,times,zhengjun,体积,物品
From: https://www.cnblogs.com/A-zjzj/p/17527156.html

相关文章

  • 7/04
    今天,雨终于停了。下了一晚上雨,让空气变得十分潮湿,假如太阳一出来的话,想必一定是分闷热吧。早上7点多我醒来,从窗户看了看外面,今天的人还挺多,相比上午是见不了太阳。这也是好事,这样今天就不会特别热了。我今天不想做饭,而家里又没人。我只好泡了一包方便面,康师傅番茄鸡蛋味,我还是不......
  • SpringBoot3.0从入门到项目实战:解决Web应用痛点的最新解决方案
    SpringBoot3.0从入门到项目实战:解决Web应用痛点的最新解决方案SpringBoot是当前Java领域中应用最广的框架之一,而随着SpringBoot3.0的发布,它迎来了更加全面和强大的一次升级。本文将深入浅出地介绍SpringBoot3.0的新特性,同时结合实际项目经验,分享Web应用的痛点以及解决方案,帮......
  • LeetCode 538. 把二叉搜索树转换为累加树
    题目链接:LeetCode538.把二叉搜索树转换为累加树题意:给出二叉搜索树的根节点,该树的节点值各不相同,请你将其转换为累加树(GreaterSumTree),使每个节点node 的新值等于原树中大于或等于 node.val 的值之和。解题思路:根据二叉搜索树的性质,二叉树每个节点看做根节点时,右边......
  • Java9-17新特性解读+案例+说明+注意+发展趋势
    前言Java8出来这么多年后,已经成为企业最成熟稳定的版本,相信绝大部分公司用的还是这个版本,但是一眨眼今年Java19都出来了,相信很多Java工程师忙于学习工作对新特性没什么了解,有的话也仅限于某一块。本篇就是博主对自己感觉有用的新特性做了一个案例验证及简要说明,整合起来分享给......
  • MAUI Blazor Android 输入框软键盘遮挡问题2.0
    前言关于MAUIBlazorAndroid输入框软键盘遮挡问题,之前的文章已经有了答案,MAUIBlazorAndroid输入框软键盘遮挡问题但是这个方案一直存在一点小的瑕疵在小窗模式下,界面的高度始终不正确所以本篇文章重点解决这个问题特别感谢这篇文章AndroidwebView输入框软键盘遮挡问题......
  • ULR #2 C. 霸占排行榜
    题意给定一棵共\(l\)个节点的Trie树结构,其中每一个非根节点\(i\)表示一个字符串\(u_i\)(容易得出这些串互不相同且非空)。给定一个长度为\(n\)的原始字符串序列\(\{s_i\}\),通过这些原始字符串构造一个大字符串\(T=s_{a_1}+s_{a_2}+\dots+s_{a_m}\)。其中\(\{a_......
  • Android BottomNavigation底部导航栏使用
    原文地址:AndroidBottomNavigation底部导航栏使用-Stars-One的杂货小窝基本使用本文侧重点记录一些特殊的样式设置,所以基本使用这里就简单概述一下,详细图文可以去找其他人的博文1.创建对应的menu菜单文件2.xml布局引用menu菜单3.启动Activity预览效果可以使用setOnIte......
  • LeetCode 669. 修剪二叉搜索树
    题目链接:LeetCode669.修剪二叉搜索树题意:给你二叉搜索树的根节点root,同时给定最小边界low和最大边界high。通过修剪二叉搜索树,使得所有节点的值在[low,high]中。修剪树不应该 改变保留在树中的元素的相对结构(即,如果没有被移除,原有的父代子代关系都应当保留)。可以证......
  • 【安全学习之路】Day29
    ......
  • 一天吃透操作系统面试八股文
    内容摘自我的学习网站:topjavaer.cn操作系统的四个特性?并发:同一段时间内多个程序执行(与并行区分,并行指的是同一时刻有多个事件,多处理器系统可以使程序并行执行)共享:系统中的资源可以被内存中多个并发执行的进线程共同使用虚拟:通过分时复用(如分时系统)以及空分复用(如虚拟内存)技......