网站大量收购独家精品文档,联系QQ:2885784924

数据结构与算法背包问题.pptx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

背包问题分析图示假设一个飞檐走壁的小偷,背着一个可装4磅东西的背包,潜入一个房间,可以盗窃如下三件商品。

为了让盗窃的商品价值最高,你应该盗窃哪些商品?最简单的算法:尝试各种可能的商品组合,并找出价值最高的组合。

方案虽然可行,但是效率非常低!如果3件商品,需要计算8种组合情况,4件商品,需要计算16种组合情况,n件商品,一共2的n次方种情况。那么,如何找到最优解?使用动态规划!动态规划算法原理:先解决子问题,再逐步解决大的问题。对于背包问题,先解决(子背包)问题!

网格解题(初始状态为空):

吉他行:

音响行:

笔记本电脑行:

【题目描述】一个旅行者有一个最多能装M公斤的背包,现在有n件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为C1,C2,...,Cn,求旅行者能获得最大总价值。【输入】第一行:两个整数,M(背包容量,M=200)和N(物品数量,N=30);第2..N+1行:每行二个整数Wi,Ci,表示每个物品的重量和价值。【输出】仅一行,一个数,表示最大总价值。【输入样例】83235455【输出样例】801背包问题

二维数组方法行表示考虑物品的个数,即阶段;列表示背包的重量,即每一阶段的状态。(状态含义:已出现物品在不同限额的小背包中能取得的最大值)

算法分析:设每个状态值存在f[i][j]中,表示将i个物品放入限额为j的背包,能够获得的最大值。那么在计算f[i][j]时,需要判断“是否将第i个物品放入背包中。得到状态转移方程:dp[i][j]=max(dp[i-1][j-w[i]]+c[i],dp[i-1][j])二维数组方法

辰辰是个很有潜能、天资聪颖的孩子,他的梦想是称为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”如果你是辰辰,你能完成这个任务吗?【输入】输入的第一行有两个整数T(1≤T≤1000)和M(1≤M≤100),T代表总共能够用来采药的时间,M代表山洞里的草药的数目。接下来的M行每行包括两个在1到100之间(包括1和100)的的整数,分别表示采摘某株草药的时间和这株草药的价值。【输出】输出只包括一行,这一行只包含一个整数,表示在规定的时间内,可以采到的草药的最大总价值。【输入样例】7037110069112【输出样例】3采药

猴子拔河有n只猴子的力量值数据,我们需要求出将n只猴子分为两组后,使这两组猴子总力量的差值最小,请求出这个最小值。输入:第一行n代表猴子数量,第二行n个整数代表每只猴子的力量值。(0n25000)输出:一行,表示分成两组后,两组猴子总力量值之差的最小值样例输入:3125样例输出:2

设有n种物品,每种物品有一个重量及一个价值。但每种物品的数量是无限的,同时有一个背包,最大载重量为M,今从n种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于M,而价值的和为最大。【输入格式】第一行:两个整数,M(背包容量,M=200)和N(物品数量,N=30);第2..N+1行:每行二个整数Wi,Ci,表示每个物品的重量和价值。【输出格式】仅一行,一个数,表示最大总价值。【样例输入】10421334579【样例输出】max=12完全背包问题

销售方案——完全背包有m种价值不同的宝石,买家想要购买价值n元的宝石若干,请问八戒有多少种销售方式?(假设每种宝石的数量是无穷的)输入:第一行,m代表宝石的种数,n代表买家出价数第二行,分别表示n种宝石的价值输出:表示销售方法数样例输入:38125样例输出:7

给你一个n种面值的货币系统,求组成面值为m的货币有多少种方案。样例:设n=3,m=10,要求输入和输出的格式如下:【样例输入】310//3种面值组成面值为10的方案1//面值12//面值25//面值5【样例输出】10//有10种方案货币系统

为了庆贺班级在校运动会上取得全校第一名成绩,班主任决定开一场

文档评论(0)

kay5620 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8001056127000014

1亿VIP精品文档

相关文档