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

完全背包问题

def knapsack(n, bag_weight, weight, value):
    dp = [[0] * (bag_weight + 1) for _ in range(n)]

    # 初始化
    for j in range(weight[0], bag_weight + 1):
        dp[0][j] = dp[0][j - weight[0]] + value[0]

    # 动态规划
    for i in range(1, n):
        for j in range(bag_weight + 1):
            if j < weight[i]:
                dp[i][j] = dp[i - 1][j]
            else:
                dp[i][j] = max(dp[i - 1][j], dp[i][j - weight[i]] + value[i])

    return dp[n - 1][bag_weight]

# 输入
n, bag_weight = map(int, input().split())
weight = []
value = []
for _ in range(n):
    w, v = map(int, input().split())
    weight.append(w)
    value.append(v)

# 输出结果
print(knapsack(n, bag_weight, weight, value))
n,v = map(int,input().split())
weigh = [0]+list(map(int,input().split()))
value = [0]+list(map(int,input().split()))
dp = [[0]*(v+1) for _ in range(n+1)]

for i in range(1,n+1):
    for j in range(v+1):
        if weigh[i]> j:
            dp[i][j] = dp[i-1][j]
        else:
            dp[i][j] = max(dp[i-1][j],dp[i][j-weigh[i]]+value[i])
print(dp[n][v])

# 完全背包问题解法

题目链接:52. 携带研究材料(第七期模拟笔试)

相关文章:

  • SQL注入(order by,limit),seacms的报错注入以及系统库的绕过
  • deepseek部署:ELK + Filebeat + Zookeeper + Kafka
  • [C++][cmake]使用C++部署yolov12目标检测的tensorrt模型支持图片视频推理windows测试通过
  • LUCEDA IPKISS Tutorial 81:通过参数函数定义形状
  • Spring Cloud源码 - Eureka源码原理分析
  • 17142弹珠堆放
  • ROS的action通信——实现阶乘运算(三)
  • echarts记录(柱状、折线、环形饼图,双柱,日期组件封装)
  • 【洛谷入门赛】B4018 游戏与共同语言
  • spring MVC执行流程
  • xss-lab
  • python与C系列语言的差异总结(3)
  • 《论区块链技术及应用》审题技巧 - 系统架构设计师
  • smolagents学习笔记系列(五)Tools-in-depth-guide
  • 每日一题-设计内存分配器;详细分析思路以及多解法
  • 如何防止 Docker 注入了恶意脚本
  • C++学习之C概述、数据类型、进制转换与数据存储
  • IntelliJ创建Springboot项目
  • spark的一些指令
  • 链式二叉树
  • 网站建设费/cnzz数据统计
  • 深圳做响应式网站制作/深圳百度首页优化
  • 网站开发访客ip/it培训机构靠谱吗
  • 哪家做网站比较好/万网域名购买
  • 免费申请httq//网站?/关键词排名优化品牌
  • 做化工行业网站/去了外包简历就毁了吗