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

克隆网站模板长沙seo网站管理

克隆网站模板,长沙seo网站管理,网站开发应用技术专业,网站左侧悬浮导航代码背包问题算法 0-1背包问题二维数组一维数组 完全背包问题二维数组一维数组 多重背包问题一维数组 0-1背包问题 问题:背包的容量为9,有重量分别为[2, 4, 6, 9]的四个物品,价值分别为[3, 4, 5, 6],求背包能装的物品的最大价值是多少…

背包问题算法

  • 0-1背包问题
    • 二维数组
    • 一维数组
  • 完全背包问题
    • 二维数组
    • 一维数组
  • 多重背包问题
    • 一维数组

0-1背包问题

问题:背包的容量为9,有重量分别为[2, 4, 6, 9]的四个物品,价值分别为[3, 4, 5, 6],求背包能装的物品的最大价值是多少,每种物品的数量最多为1

二维数组

w = [2, 4, 6, 9]  # 重量
v = [3, 4, 5, 6]  # 价值
c = 9  # 最大容量
n = len(w)  # 物品数量
w.insert(0, 0)
v.insert(0, 0)
dp = [[0] * (c + 1) for _ in range(n + 1)]
for i in range(1, n + 1):for j in range(1, c + 1): # 正向if j >= w[i]:dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - w[i]] + v[i])else:dp[i][j] = dp[i - 1][j]for rows in dp:print(rows)
print('最大value:', dp[n][c])

一维数组

w = [2, 4, 6, 9]  # 重量
v = [3, 4, 5, 6]  # 价值
c = 9  # 最大容量n = len(w)  # 物品数量
w.insert(0, 0)
v.insert(0, 0)
dp = [0] * (c + 1)
for i in range(1, n + 1):for j in range(c, 0, -1): # 逆向if j >= w[i]:dp[j] = max(dp[j], dp[j - w[i]] + v[i])print(dp)
print('最大value:', dp[c])

完全背包问题

问题:背包的容量为9,有重量分别为[2, 4, 6, 9]的四个物品,价值分别为[3, 4, 5, 6],求背包能装的物品的最大价值是多少,每种物品的数量最多不限

二维数组

w = [2, 4, 6, 9]  # 重量
v = [3, 4, 5, 6]  # 价值
c = 9  # 最大容量n = len(w)
w.insert(0, 0)
v.insert(0, 0)dp = [[0] * (c + 1) for _ in range(n + 1)]for i in range(1, n + 1):for j in range(1, c + 1): # 正向if j >= w[i]:dp[i][j] = max(dp[i - 1][j], dp[i][j - w[i]] + v[i])else:dp[i][j] = dp[i - 1][j]
for values in dp:print(values)
print('最大value:', dp[n][c])

一维数组

w = [2, 4, 6, 9]  # 重量
v = [3, 4, 5, 6]  # 价值
c = 9  # 最大容量n = len(w)w.insert(0, 0)
v.insert(0, 0)dp = [0] * (c + 1)for i in range(1, n + 1):for j in range(0, c + 1): # 正向if j >= w[i]:dp[j] = max(dp[j], dp[j - w[i]] + v[i])print(dp)
print('最大value:', dp[c])

多重背包问题

问题:背包的容量为10,有重量分别为[2, 4, 6, 9]的四个物品,价值分别为[3, 4, 5, 6],求背包能装的物品的最大价值是多少,每种物品的数量最多分别为[2, 1, 2, 1]

一维数组

w = [2, 4, 6, 9]  # 重量
v = [3, 4, 5, 6]
counts = [2, 1, 2, 1]  # 数量
c = 10  # 最大容量
n = len(w)w.insert(0, 0)
v.insert(0, 0)
counts.insert(0, 0)dp = [0] * (c + 1)for i in range(1, n + 1):for j in range(c, 0, -1): # 逆向for k in range(1, counts[i] + 1):if j >= k * w[i]:dp[j] = max(dp[j], dp[j - k * w[i]] + v[i])print(dp)
print('最大value:', dp[c])
http://www.yayakq.cn/news/592797/

相关文章:

  • 网站建设储蓄卡网站建设众包平台
  • 找人做网站需要什么提供手机自适应网站
  • 如何通过ftp上传网站北京响应式网站建设
  • 徐州制作公司网站网站建设用户调研
  • 巴中免费网站建设互联网创业项目方案
  • 网站开发方式的选择注册公司名称查询系统官网
  • 厦门网站制作建设海口网站建设是什么
  • 现在asp做网站网址大全123下载apk
  • 淄博网站排名优化wordpress手机博客主题
  • 域联网站建设云服务器是虚拟技术吗
  • 建设工程质量监理协会网站视频网站如何做引流
  • 学做烘焙的网站单位网站建设要多少钱
  • 魏县网站建设西安营销策划推广公司
  • 课程网站建设情况南宁企业建站程序
  • 现代网络营销的方式seo服务平台选择
  • 北京网站公司制作网站的技术分析
  • 可视化的网站开发工具微网站建设计划书
  • 网站建设人工费网站如何做搜索引擎
  • 大连模板网建站中小企业网站建设与管理课后答案
  • 天津网站制作公司哪家好wordpress的密码
  • 筛选选功能形网站建设网站设计需要什么
  • 南京外贸网站建设深圳团购网站建设
  • 做网站需要费用多少织梦怎么做手机网站
  • 巩义网站建设工程企业文化案例
  • 建设部信息中心网站怎么创建网站校园表白墙
  • 网站关键词分布网站建设顺序
  • 高校档案室网站建设专注徐州网站建设
  • 青岛网站建设公司正网站建设类的职位
  • 中华保险网站网站策划设计招聘
  • 使用html5的网站笔记本做网站服务器