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

途牛的旅游网站是谁做的谷歌独立站

途牛的旅游网站是谁做的,谷歌独立站,商务网站开发心得,宁慈建设网站01 背包问题解析与代码 问题定义 给定一堆具有不同重量 { w 1 , w 2 , ⋯ , w n } \{ w_1,w_2, \cdots,w_n \} {w1​,w2​,⋯,wn​}与价值 { v 1 , v 2 , ⋯ , v n } \{ v_1,v_2, \cdots,v_n \} {v1​,v2​,⋯,vn​}的背包(knapsack),在总重…

01 背包问题解析与代码

问题定义

给定一堆具有不同重量 { w 1 , w 2 , ⋯ , w n } \{ w_1,w_2, \cdots,w_n \} {w1,w2,,wn}与价值 { v 1 , v 2 , ⋯ , v n } \{ v_1,v_2, \cdots,v_n \} {v1,v2,,vn}的背包(knapsack),在总重量为 W 的情况下,如何选取背包才能获得最大价值?其中每种背包只能有被选取和不被选取两种选择。

思路解析

考虑解数组 d p [ i ] [ j ] dp[i][j] dp[i][j] ,其中的 i i i 表示尝试放入标号为 1 到 i 的背包, j j j 表示当前的限重为 j j j,数组中的值表示当前情况下可以取得的最大价值。

显然这个 dp 数组的第一行和第一列元素全为 0,逐个计算时我们使用从左到右,从上到下的原则进行计算,在计算 d p [ i ] [ j ] dp[i][j] dp[i][j] 时,需要考虑两种情况:

第一种当前的总限重是不允许放入标号为 i 的背包的,也就是当前总限重小于标号为 i 的背包的重量,那么此时的最大价值应该等于总限重为 j,且尝试放入标号为 1-(i-1) 背包时的总价值,用公式表达:
d p [ i ] [ j ] = d p [ i − 1 ] [ j ] ( j < w [ i ] ) dp[i][j]=dp[i-1][j](j<w[i]) dp[i][j]=dp[i1][j](j<w[i])
第二种则是当前的总限重是允许放入标号为 i 的背包的,也就是当前总限重大于标号为 i 的背包的重量,那么此时的最大价值又需要考虑两种情况,原因是放入标号为 i 的背包可能并不能取得最大价值。

放入标号为 i 的背包会产生多大的价值呢?这时我们就可以利用到先前已经计算好的解数组了,在放入标号为 i 的元素之后,背包限重变为 j - w[i],那么放入 i-1(不包含第i个) 个背包,总限重为 j - w[i] 的情况下的最大价值就是 d p [ i − 1 ] [ j − w [ i ] ] dp[i-1][j-w[i]] dp[i1][jw[i]],这时再加上标号 i 的背包总价值就是 d p [ i − 1 ] [ j − w [ i ] ] + v [ i ] dp[i-1][j-w[i]]+v[i] dp[i1][jw[i]]+v[i]

不放入标号为i的背包的价值则为 d p [ i − 1 ] [ j ] dp[i-1][j] dp[i1][j]

所以,此时的最大价值应当比较上述两种情况,选取最大值
d p [ i ] [ j ] = m a x ( d p [ i − 1 ] [ j ] , d p [ i − 1 ] [ j − w [ i ] ] + v [ i ] ) ( j ≥ w [ i ] ) dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+v[i])(j \geq w[i]) dp[i][j]=max(dp[i1][j],dp[i1][jw[i]]+v[i])(jw[i])
这里提供一个在线练习 01背包数组填充的网站。

代码实现

def algo(weight, value, total):row = len(weight)col = total + 1res = [[0] * col for _ in range(row)]for i in range(1, row):for j in range(1, col):if weight[i] > j:res[i][j] = res[i-1][j]else:res[i][j] = max(res[i-1][j], res[i-1][j-weight[i]] + value[i])return resweight = [0, 4, 2, 3, 1]
value = [0, 9, 10, 4, 1]
total = 6print(algo(weight, value, total))
http://www.sczhlp.com/news/25998/

相关文章:

  • 长春网站制作套餐竞价网站推广
  • 做课程的网站宁波优化网站排名软件
  • 做棋牌游戏网站赚钱吗整合营销传播方法包括
  • Qt 附加属性 与 QML自定义仿VSCode的 SplitView
  • 如何制造一个网站站长友情链接
  • 整站seo包年费用怎么用模板做网站
  • 有关网站开发的文章抖音seo搜索优化
  • 个人做哪方面的网站凡科建站app
  • 手机电影网站怎么做的武汉seo收费
  • 电商网站建设电话郑州seo外包服务
  • 网站制作软件都是什么软件便民信息微信平台推广
  • 做批发网站营销型网站建设实训总结
  • 网站记录登录账号怎么做拓客app下载
  • 武汉有哪些建筑公司优化网站标题
  • wordpress站点进入时弹窗北京网络营销推广培训哪家好
  • 深圳建设集团有限公司官网大型网站seo课程
  • 网站制作 太原惠州seo怎么做
  • 做的很好的黑白网站百度产品大全
  • 电子商务网站建设中的重要性网站怎么做的
  • 网店的网站设计方案广告代理
  • 企业网站改版的意义百度公司的业务范围
  • 大连做公司网站哪家好网站seo规划
  • Keil5由于没有Arm Compiler 5编译报错解决方案
  • 因酷西安网站建设公司怎么样优化大师win10能用吗
  • 网站建设pdf百度竞价排名官网
  • 企业网站源码搜一品资源最新新闻热点事件2023
  • 定制软件开发公司哪家好seo托管
  • 购物网站 怎么做想要网站推广页
  • 用双语网站做seo会不会做手机关键词快速排名软件
  • 个人网站cms优秀网站网页设计图片