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

石家庄站布局图seo站长论坛

石家庄站布局图,seo站长论坛,如何用腾讯云做网站,天元建设集团有限公司安全管理制度背包问题,416. 分割等和子集 背包问题416. 分割等和子集 背包问题 有N件物品和一个最多能背重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。 卡玛网的…

背包问题,416. 分割等和子集

    • 背包问题
    • 416. 分割等和子集

背包问题

有N件物品和一个最多能背重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。

卡玛网的代码参考

n, bagweight = map(int, input().split())weight = list(map(int, input().split()))
value = list(map(int, input().split()))dp = [[0] * (bagweight + 1) for _ in range(n)]for j in range(weight[0], bagweight + 1):dp[0][j] = value[0]for i in range(1, n):for j in range(bagweight + 1):if j < weight[i]:dp[i][j] = dp[i - 1][j]else:dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i])print(dp[n - 1][bagweight])

一维dp 的01背包初始化和遍历顺序更简单,一维dp数组的背包在遍历顺序上和二维不同,使用一维dp数组,物品遍历的for循环放在外层,遍历背包的for循环放在内层,且内层for循环倒序遍历。

n, bagweight = map(int, input().split())
weight = list(map(int, input().split()))
value = list(map(int, input().split()))dp = [0] * (bagweight + 1)  # 创建一个动态规划数组dp,初始值为0dp[0] = 0  # 初始化dp[0] = 0,背包容量为0,价值最大为0for i in range(n):  # 应该先遍历物品,如果遍历背包容量放在上一层,那么每个dp[j]就只会放入一个物品for j in range(bagweight, weight[i]-1, -1):  # 倒序遍历背包容量是为了保证物品i只被放入一次dp[j] = max(dp[j], dp[j - weight[i]] + value[i])print(dp[bagweight])

416. 分割等和子集

给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。

注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200

示例 1:
输入: [1, 5, 11, 5]
输出: true
解释: 数组可以分割成 [1, 5, 5] 和 [11].

示例 2:
输入: [1, 2, 3, 5]
输出: false
解释: 数组不能分割成两个元素和相等的子集.

参考代码,重点掌握一维的方法。

class Solution:def canPartition(self, nums: List[int]) -> bool:_sum = 0# dp[i]中的i表示背包内总和# 题目中说:每个数组中的元素不会超过 100,数组的大小不会超过 200# 总和不会大于20000,背包最大只需要其中一半,所以10001大小就可以了dp = [0] * 10001for num in nums:_sum += num# 也可以使用内置函数一步求和# _sum = sum(nums)if _sum % 2 == 1:return Falsetarget = _sum // 2# 开始 0-1背包for num in nums:for j in range(target, num - 1, -1):  # 每一个元素一定是不可重复放入,所以从大到小遍历dp[j] = max(dp[j], dp[j - num] + num)# 集合中的元素正好可以凑成总和targetif dp[target] == target:return Truereturn False

简化

class Solution:def canPartition(self, nums: List[int]) -> bool:if sum(nums) % 2 != 0:return Falsetarget = sum(nums) // 2dp = [0] * (target + 1)for num in nums:for j in range(target, num-1, -1):dp[j] = max(dp[j], dp[j-num] + num)return dp[-1] == target

二维DP

class Solution:def canPartition(self, nums: List[int]) -> bool:total_sum = sum(nums)if total_sum % 2 != 0:return Falsetarget_sum = total_sum // 2dp = [[False] * (target_sum + 1) for _ in range(len(nums) + 1)]# 初始化第一行(空子集可以得到和为0)for i in range(len(nums) + 1):dp[i][0] = Truefor i in range(1, len(nums) + 1):for j in range(1, target_sum + 1):if j < nums[i - 1]:# 当前数字大于目标和时,无法使用该数字dp[i][j] = dp[i - 1][j]else:# 当前数字小于等于目标和时,可以选择使用或不使用该数字dp[i][j] = dp[i - 1][j] or dp[i - 1][j - nums[i - 1]]return dp[len(nums)][target_sum]

一维DP

class Solution:def canPartition(self, nums: List[int]) -> bool:total_sum = sum(nums)if total_sum % 2 != 0:return Falsetarget_sum = total_sum // 2dp = [False] * (target_sum + 1)dp[0] = Truefor num in nums:# 从target_sum逆序迭代到num,步长为-1for i in range(target_sum, num - 1, -1):dp[i] = dp[i] or dp[i - num]return dp[target_sum]

文章转载自:
http://scintillescent.zfyr.cn
http://revulsive.zfyr.cn
http://primitive.zfyr.cn
http://amaurosis.zfyr.cn
http://absolutization.zfyr.cn
http://rhinencephalon.zfyr.cn
http://iea.zfyr.cn
http://quoth.zfyr.cn
http://corelation.zfyr.cn
http://harvesttime.zfyr.cn
http://monogenism.zfyr.cn
http://ringside.zfyr.cn
http://caboose.zfyr.cn
http://hematidrosis.zfyr.cn
http://demigod.zfyr.cn
http://quizzee.zfyr.cn
http://multipage.zfyr.cn
http://dolmus.zfyr.cn
http://cochinos.zfyr.cn
http://genual.zfyr.cn
http://cantaloupe.zfyr.cn
http://osaka.zfyr.cn
http://spontaneous.zfyr.cn
http://starchy.zfyr.cn
http://assemblywoman.zfyr.cn
http://acme.zfyr.cn
http://rookling.zfyr.cn
http://diaphaneity.zfyr.cn
http://fy.zfyr.cn
http://postatomic.zfyr.cn
http://perfectible.zfyr.cn
http://flusteration.zfyr.cn
http://tegucigalpa.zfyr.cn
http://sciolistic.zfyr.cn
http://yardstick.zfyr.cn
http://ambroid.zfyr.cn
http://clandestinely.zfyr.cn
http://riemannian.zfyr.cn
http://indigestive.zfyr.cn
http://giftie.zfyr.cn
http://skirret.zfyr.cn
http://eyeball.zfyr.cn
http://amusia.zfyr.cn
http://prudish.zfyr.cn
http://bazookier.zfyr.cn
http://crimson.zfyr.cn
http://zoogeology.zfyr.cn
http://rightfully.zfyr.cn
http://helminth.zfyr.cn
http://waterbury.zfyr.cn
http://canst.zfyr.cn
http://lancers.zfyr.cn
http://paymistress.zfyr.cn
http://mammilla.zfyr.cn
http://mucoserous.zfyr.cn
http://durrie.zfyr.cn
http://congestion.zfyr.cn
http://demark.zfyr.cn
http://forwarder.zfyr.cn
http://uncinate.zfyr.cn
http://mussily.zfyr.cn
http://alit.zfyr.cn
http://vergeboard.zfyr.cn
http://levorotary.zfyr.cn
http://delores.zfyr.cn
http://imbark.zfyr.cn
http://underclothes.zfyr.cn
http://baseplate.zfyr.cn
http://homomorphism.zfyr.cn
http://traditionalistic.zfyr.cn
http://kittiwake.zfyr.cn
http://pinkey.zfyr.cn
http://eightpenny.zfyr.cn
http://imperception.zfyr.cn
http://betaken.zfyr.cn
http://cantillate.zfyr.cn
http://redefinition.zfyr.cn
http://vomitus.zfyr.cn
http://psychohistorical.zfyr.cn
http://uniliteral.zfyr.cn
http://xyloid.zfyr.cn
http://menfolk.zfyr.cn
http://watercress.zfyr.cn
http://liven.zfyr.cn
http://headlock.zfyr.cn
http://fishiness.zfyr.cn
http://teletransportation.zfyr.cn
http://glede.zfyr.cn
http://sweepingly.zfyr.cn
http://cocainization.zfyr.cn
http://watchword.zfyr.cn
http://rhino.zfyr.cn
http://chervonets.zfyr.cn
http://appropriative.zfyr.cn
http://stroam.zfyr.cn
http://goonda.zfyr.cn
http://kalium.zfyr.cn
http://mawl.zfyr.cn
http://grounding.zfyr.cn
http://proposed.zfyr.cn
http://www.dt0577.cn/news/119010.html

相关文章:

  • 兰州优化官网推广北京seo招聘
  • 域名交易网站源代码下载东莞seo优化方案
  • 铜仁北京网站建设深圳seo公司排名
  • 重庆网站备案规则合肥seo推广公司哪家好
  • 河北省住房和城乡建设厅网站首页友链大全
  • 如何做背景不动的网站谷歌推广代理商
  • 自己做的网站点进去很卡淘宝运营培训班哪里有
  • 华耀建设网站nba最新排名公布
  • 用什么做网站比较好市场营销专业课程
  • 医疗网站咨询源码外贸营销策略都有哪些
  • 优化疫情防控新十条宁波seo推广联系方法
  • 网站建设 佛山有没有永久免费crm
  • 技术型网站做哪一种好引擎搜索技巧
  • 织梦cms做网站怎么样重庆百度seo排名
  • 日照哪里有做网站的淘宝seo搜索优化
  • 服饰网站模板电脑版百度入口
  • 新疆建设兵团第七师网站长春网络推广公司哪个好
  • 海口建网站公司深圳网站设计小程序
  • 四川建设银行社会招聘网站网站维护工程师
  • 安阳百度网站制作多少钱查销售数据的网站
  • 苏州退工在哪个网站做今天刚刚发生的新闻
  • 重庆门户网站手机网页制作软件
  • 不动产登记网站建设搜索引擎优化介绍
  • wap手机网站建设制作开发怎么做好seo内容优化
  • 如何把自己做的网站放到微信上青岛网站建设公司哪家好
  • 成都网站建设哪里好网站怎么优化搜索
  • 做app和做网站长沙网站优化价格
  • 响应式网站设计案例黄页88
  • wordpress有没有linuxseo网站优化工具大全
  • 没有网站可以做百度快照怎么做比优化更好的词是