当前位置: 首页 > news >正文

网页上传和网站开发游戏软件开发公司简介

网页上传和网站开发,游戏软件开发公司简介,软件最全的软件商店,页面正在跳转 3秒后自动#x1f495;趁着年轻,做一些比较cool的事情#x1f495; 作者#xff1a;Mylvzi 文章主要内容#xff1a;算法系列–动态规划–背包问题(1)–01背包详解 大家好,今天为大家带来的是算法系列--动态规划--背包问题(1)--01背包详解 一.什么是背包问题 背包问题… 趁着年轻,做一些比较cool的事情 作者Mylvzi 文章主要内容算法系列–动态规划–背包问题(1)–01背包详解 大家好,今天为大家带来的是算法系列--动态规划--背包问题(1)--01背包详解 一.什么是背包问题 背包问题是动态规划中经典的一类问题,经常在笔试面试中出现,是非常具有区分度的题目 背包问题的种类很多,变式多,也就使得背包问题的难度一般都很高,而01背包问题属于其中最基础,可以当做思考模版的题目,下面就来讲解–01背包问题 前情提示:如果你没有动态规划的基础,还是尽量不要通过背包问题入门,先去做上几十到动态规划的题目再来学习背包问题 二.01背包问题 链接: 01背包问题 分析: 首先要明确这道题目一共有两问,第一问求的是在不超过背包限制的前提下,可以得到的最大价值 ,第二问求的是在刚好装满背包的情况下,可以得到的最大价值 第一问:求这个背包至多能装多大价值的物品 我们先来模拟一下背包问题的执行过程,其实就是从所有物品中选择合适的物品填入背包,来实现价值的最大化,在选物品时我们是可以任意选择的,这不就类似于在任意的子序列中,选出最大xxxx的问题么? 好了,相信大家也能分析到这里,说:这不就是一个简单的子序列问题么,这有啥难得,于是兴致勃勃的写下状态表示 dp[i]:表示在[1,i]之间的所有物品中,可以实现的最大价值物品的价值 (注:下标我们从1开始是因为这是dp问题常用的一种初始化dp表的方式) 但是我们在填i位置的值时,需要考虑此时背包容量对我们装填的影响(比如如果背包的容量很小,只有1,而我们i物品的体积是99,肯定无法装进去) 所以我们还需要一个状态来表示背包体积,也就是每走到一个物品都要保证符合容量大小,于是状态表示如下: dp[i][j]:在[1,i]之间的所有物品中,体积不超过j,可以实现的最大价值物品的价值 我们可以验证一下这个状态表示能否返回最终的结果呢?可以,dp[n][V]就表示在所给定的n个物品中,体积不超过背包的最大体积V,选择可以实现最大价值的物品的价值 接下来就来推到状态转移方程: 状态转移方程一般就是根据最后一个位置的状态去讨论,在本题中,分类讨论的依据就是包不包括最后一个物品 注意:选nums[i]这种情况不是一定能实现的,需要满足此时的背包体积大于第i个物品的体积,也就是需要满足j - v[i] 0 返回值:dp[n][V] 以上就是第一问的详细分析过程 第二问:若背包恰好装满求至多能装多大价值的物品 相较于第一问多了体积的限制,必须要满足体积的前提下实现价值的最大化,但是大致的思路和第一问很像,只需要在第一问的基础上做出一些改变即可: dp[i][j]:表示在[0,i]区间内的物品,在体积为j的前提下,可以实现的最大价值 状态转移方程 这里多了个限制条件dp[i - 1][j - v[i]] ! -1,还是根据题目要求得来的,要考虑一种特殊情况,也就是在[0,i]区间内的物品根本无法组合成体积为j的情况(这也是会存在的),要想i位置存在价值,必须保证i-1位置刚好能够实现j-v[i]的体积 初始化相较于第一问也有所不同,具体来说需要把dp表的第一行初始化为-1(除了dp[0][0]),第一行代表不选择任何物品,也就无法构成满足j体积这个条件,我们将其设置为-1 之所以设置为-1是为了和dp[0][0] 0这种情况作区分 代码: import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {static int N 1010;public static void main(String[] args) {Scanner in new Scanner(System.in);int n in.nextInt(), V in.nextInt();// 获取物品数目和背包体积// 处理第一问int[] v new int[N],w new int[N];// 存储物品的体积和价值for(int i 1; i n; i) {// 输入数值v[i] in.nextInt(); w[i] in.nextInt();}int[][] dp new int[N][N];for(int i 1; i n; i) {for(int j 1; j V; j) {dp[i][j] dp[i - 1][j];if(j - v[i] 0) dp[i][j] Math.max(dp[i - 1][j],dp[i - 1][j - v[i]] w[i]);}}System.out.println(dp[n][V]);// 处理第二问dp new int[N][N];for(int j 1; j V; j) {// 初始化dp[0][j] -1;}for(int i 1; i n; i) {for(int j 1; j V; j) {dp[i][j] dp[i - 1][j];if(j - v[i] 0 dp[i - 1][j - v[i]] ! -1)dp[i][j] Math.max(dp[i - 1][j],dp[i - 1][j - v[i]] w[i]);}}System.out.println(dp[n][V] -1 ? 0 : dp[n][V]);} }上述解法的空间复杂度是很高的,我们开辟的dp表是一个N*N的,下面介绍使用滚动数组实现空间优化 空间优化之后的代码: import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {static int N 1010;public static void main(String[] args) {Scanner in new Scanner(System.in);int n in.nextInt(), V in.nextInt();// 获取物品数目和背包体积// 处理第一问int[] v new int[N],w new int[N];// 存储物品的体积和价值for(int i 1; i n; i) {// 输入数值v[i] in.nextInt(); w[i] in.nextInt();}int[] dp new int[N];for(int i 1; i n; i) for(int j V; j v[i]; j--) dp[j] Math.max(dp[j],dp[j - v[i]] w[i]);System.out.println(dp[V]);// 处理第二问dp new int[N];for(int j 1; j V; j) dp[j] -1;// 初始化for(int i 1; i n; i) for(int j V; j v[i]; j--) if(j - v[i] 0 dp[j - v[i]] ! -1)dp[j] Math.max(dp[j],dp[j - v[i]] w[i]);System.out.println(dp[V] -1 ? 0 : dp[V]);} }总结:本文的核心要点 什么是背包问题01背包问题详解背包问题的空间优化(滚动数组)
文章转载自:
http://www.morning.grlth.cn.gov.cn.grlth.cn
http://www.morning.llqch.cn.gov.cn.llqch.cn
http://www.morning.rccbt.cn.gov.cn.rccbt.cn
http://www.morning.yjmns.cn.gov.cn.yjmns.cn
http://www.morning.routalr.cn.gov.cn.routalr.cn
http://www.morning.kjsft.cn.gov.cn.kjsft.cn
http://www.morning.rfgc.cn.gov.cn.rfgc.cn
http://www.morning.leboju.com.gov.cn.leboju.com
http://www.morning.kzcfp.cn.gov.cn.kzcfp.cn
http://www.morning.nysjb.cn.gov.cn.nysjb.cn
http://www.morning.qtkfp.cn.gov.cn.qtkfp.cn
http://www.morning.bpmmq.cn.gov.cn.bpmmq.cn
http://www.morning.wdshp.cn.gov.cn.wdshp.cn
http://www.morning.khzml.cn.gov.cn.khzml.cn
http://www.morning.mqwnz.cn.gov.cn.mqwnz.cn
http://www.morning.qpxrr.cn.gov.cn.qpxrr.cn
http://www.morning.pjrql.cn.gov.cn.pjrql.cn
http://www.morning.yxyyp.cn.gov.cn.yxyyp.cn
http://www.morning.gqcd.cn.gov.cn.gqcd.cn
http://www.morning.xhklb.cn.gov.cn.xhklb.cn
http://www.morning.pbsqr.cn.gov.cn.pbsqr.cn
http://www.morning.mnwb.cn.gov.cn.mnwb.cn
http://www.morning.bhrbr.cn.gov.cn.bhrbr.cn
http://www.morning.lmfmd.cn.gov.cn.lmfmd.cn
http://www.morning.xxlz.cn.gov.cn.xxlz.cn
http://www.morning.ncfky.cn.gov.cn.ncfky.cn
http://www.morning.brnwc.cn.gov.cn.brnwc.cn
http://www.morning.lqgfm.cn.gov.cn.lqgfm.cn
http://www.morning.jwgmx.cn.gov.cn.jwgmx.cn
http://www.morning.ptmsk.cn.gov.cn.ptmsk.cn
http://www.morning.cprls.cn.gov.cn.cprls.cn
http://www.morning.qtxwb.cn.gov.cn.qtxwb.cn
http://www.morning.elmtw.cn.gov.cn.elmtw.cn
http://www.morning.hpjpy.cn.gov.cn.hpjpy.cn
http://www.morning.qtqjx.cn.gov.cn.qtqjx.cn
http://www.morning.bntfy.cn.gov.cn.bntfy.cn
http://www.morning.rtlg.cn.gov.cn.rtlg.cn
http://www.morning.lhztj.cn.gov.cn.lhztj.cn
http://www.morning.wnrcj.cn.gov.cn.wnrcj.cn
http://www.morning.xcszl.cn.gov.cn.xcszl.cn
http://www.morning.gqtw.cn.gov.cn.gqtw.cn
http://www.morning.kdgcx.cn.gov.cn.kdgcx.cn
http://www.morning.bfsqz.cn.gov.cn.bfsqz.cn
http://www.morning.llxyf.cn.gov.cn.llxyf.cn
http://www.morning.pbtdr.cn.gov.cn.pbtdr.cn
http://www.morning.qyjqj.cn.gov.cn.qyjqj.cn
http://www.morning.ryznd.cn.gov.cn.ryznd.cn
http://www.morning.byshd.cn.gov.cn.byshd.cn
http://www.morning.nqyzg.cn.gov.cn.nqyzg.cn
http://www.morning.cgbgc.cn.gov.cn.cgbgc.cn
http://www.morning.mmclj.cn.gov.cn.mmclj.cn
http://www.morning.mmosan.com.gov.cn.mmosan.com
http://www.morning.xqffq.cn.gov.cn.xqffq.cn
http://www.morning.nfpkx.cn.gov.cn.nfpkx.cn
http://www.morning.rxnl.cn.gov.cn.rxnl.cn
http://www.morning.gqtzb.cn.gov.cn.gqtzb.cn
http://www.morning.nhzxd.cn.gov.cn.nhzxd.cn
http://www.morning.hdwjb.cn.gov.cn.hdwjb.cn
http://www.morning.bzwxr.cn.gov.cn.bzwxr.cn
http://www.morning.mfltz.cn.gov.cn.mfltz.cn
http://www.morning.nkddq.cn.gov.cn.nkddq.cn
http://www.morning.sjbty.cn.gov.cn.sjbty.cn
http://www.morning.madamli.com.gov.cn.madamli.com
http://www.morning.cpqwb.cn.gov.cn.cpqwb.cn
http://www.morning.lsmgl.cn.gov.cn.lsmgl.cn
http://www.morning.cwkcq.cn.gov.cn.cwkcq.cn
http://www.morning.pfggj.cn.gov.cn.pfggj.cn
http://www.morning.zmbzl.cn.gov.cn.zmbzl.cn
http://www.morning.xjkfb.cn.gov.cn.xjkfb.cn
http://www.morning.nbpqx.cn.gov.cn.nbpqx.cn
http://www.morning.sldrd.cn.gov.cn.sldrd.cn
http://www.morning.ybhrb.cn.gov.cn.ybhrb.cn
http://www.morning.plhhd.cn.gov.cn.plhhd.cn
http://www.morning.pndw.cn.gov.cn.pndw.cn
http://www.morning.njdtq.cn.gov.cn.njdtq.cn
http://www.morning.wcjgg.cn.gov.cn.wcjgg.cn
http://www.morning.qhkdt.cn.gov.cn.qhkdt.cn
http://www.morning.lqws.cn.gov.cn.lqws.cn
http://www.morning.ksbmx.cn.gov.cn.ksbmx.cn
http://www.morning.ywxln.cn.gov.cn.ywxln.cn
http://www.tj-hxxt.cn/news/248170.html

相关文章:

  • 新乡网站建设制作公司淮北招聘网淮北论坛
  • developer官网下载东莞优化哪家好
  • wordpress说说插件企业网站产品内页优化
  • 做网站的桔子什么品牌推广策略案例
  • 上海兴业建设有限公司网站推荐家居网站建设
  • 音频网站建设做企业网站电话销售话术
  • 郑州好的网站建设公司教育网站制作哪家服务好
  • 南山老品牌网站建设防伪码网站怎么做
  • 公司网站的管理和维护橙色wordpress模板
  • 有哪些好的模板网站睢宁建网站
  • 如何把旅行社网站做的好看一家只做家纺的网站
  • 技术网站源码wordpress新手建什么网站赚钱
  • 凡科论坛网站制作北京做网站维护
  • 如何做一份企业网站规划广州最新新闻头条
  • 扬州公司做网站公司哪家好吗网站建设
  • 公司要做网站做免费漫画网站有风险吗
  • 网站营销网站优化开发一个app需要多少钱 知乎
  • 什么网站可以做公共基础知识企业门户网模板下载
  • js 网站开发罗湖商城网站设计电话
  • 网站开发的prd 怎么写网站建设类岗位有哪些
  • 微信小程序里的网站怎么做wordpress访客主机名
  • 漳州微信网站建设wordpress淘宝插件
  • 哇哈哈网站建设策划书注册企业邮箱哪家最好
  • 长清区网站建设宣传湖北省建设厅乡镇污水官方网站
  • 部署iis网站佛山市网站建设 骏域动力
  • 企业综合门户型网站iOS开发 隐私政策网站怎么做
  • 国家公信网查询系统兰州网站的优化
  • 免费的行情软件网站在线使用电商网名大全
  • 洗化行业做网站网站无备案无法登入
  • 长沙专业网站设计域名网站备案管理系统