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

网站建设 团队介绍网站建设电商学堂

网站建设 团队介绍,网站建设电商学堂,小鸟云服务器官网,徐州建设局工程交易网一.完全背包理论基础-二维DP数组 #每个背包可以使用无数次#倒序遍历改为正序遍历n, v map(int, input().split())#读取物品的种类和重量 data [] for _ in range(n):weight, value map(int, input().split())data.append((weight, value))#初始化 # 初始化 dp[i][j] 表示前 …

一.完全背包理论基础-二维DP数组

#每个背包可以使用无数次#倒序遍历改为正序遍历n, v = map(int, input().split())#读取物品的种类和重量
data = []
for _ in range(n):weight, value = map(int, input().split())data.append((weight, value))#初始化 # 初始化 dp[i][j] 表示前 i 个物品在容量为 j 的背包下的最大价值
dp = [[0]*(v+1) for _ in range(n+1)]for i in range(1,n+1):weight, value = data[i-1]for j in range(v+1):#不选第i个物品dp[i][j] = dp[i-1][j]#可以选第i个物品多次if j >= weight:dp[i][j] = max(dp[i][j], dp[i][j-weight]+value)
print(dp[n][v])

2.零钱兑换Ⅱ:组合数:先遍历物品后遍历背包

518. 零钱兑换 II - 力扣(LeetCode)

思路:

 

class Solution:def change(self, amount: int, coins: List[int]) -> int:#dp[j] 表示可以凑成价值为j的组合数dp = [0] * (amount+1)dp[0] = 1for coin in coins:for j in range(coin, amount+1):#循环从 coin 开始的原因:因为会越界dp[j] += dp[j-coin]return dp[amount]

3.组合总合Ⅳ :排列:先遍历背包再遍历物品

思路:

✅ 思路总结:

📌 1. 本质是一个完全背包问题的变形:
  • 数组元素可以重复使用;

  • 关键在于:组合顺序不同视作不同的结果,即 [1,2][2,1] 被认为是两种不同的组合;

  • 所以我们要计算的是排列数(而非组合数)。

2. 状态定义:
  • 定义 dp[i] 表示:凑出目标和为 i 的组合(排列)数

📌 3. 初始化:

dp = [0] * (target + 1) dp[0] = 1 # 凑出 0 有 1 种方式:什么都不选

  • 为什么 dp[0]=1?表示凑成 0 元,有 1 种方式(空序列),这是构建递推关系的基础。

📌 4. 状态转移方程(排列 vs 组合的核心区别):

class Solution:def combinationSum4(self, nums: List[int], target: int) -> int:#强调组合顺序即为排列 :先遍历背包,再遍历物品#组合数:先遍历物品再遍历背包#dp[j] 就是总和为j的元素组合个数dp = [0]*(target+1)dp[0] = 1for i in range(1, target+1):for num in nums:if i >= num:dp[i] += dp[i-num]return dp[target]

4.爬楼梯:不难套公式,属于排列问题,先背包后物品

n, m = map(int, input().split())#这个属于排列问题
#定义dp数组,dp[j] 等于爬j阶楼梯有dp[j]种不同的方法
dp = [0]*(n+1)
dp[0] = 1#递推公式:先背包后物品
for i in range(1, n+1):for step in range(1, m+1):if i >= step:dp[i] += dp[i-step]
print(dp[n])

今天就到这里结束啦!明天继续!

http://www.dtcms.com/a/537079.html

相关文章:

  • Android Studio新手开发第三十三天
  • 九牛科技网站开发微信营销做电影网站侵权
  • 基于dcmtk的dicom工具 第十章 读取dicom文件图像数据并显示
  • wordpress站点浏览网站建设和网站优化的区别
  • 天锐绿盾防泄密系统注册机,支持2025年V7.51版本注册
  • c语言实现队列【由浅入深-数据结构】
  • Flink ExecutionConfig 实战并行度、序列化、对象重用与全局参数
  • 家政类网站开发成本wordpress 音乐不中断
  • STM32-SPI协议
  • 西安网站开发php网站插件
  • LinearRAG—重新定义GraphRAG:无需关系抽取的线性图构建新范式 -香港理工
  • 第4章-程序计数器
  • HashMap 与 HashSet
  • 怎么在虚拟主机上建网站wordpress rest图片
  • 小米手机之间数据转移的6种方法
  • 前端开发中的表格标签
  • PaddleOCR-VL本地部署流程
  • 2.2 复合类型
  • 做网站图片自动切换宁波软件开发
  • quat:高性能四元数运算库
  • [MySQL]表——分组查询
  • 济南做网站的好公司有哪些极简资讯网站开发
  • 网站后台页面设计互联网+可以做什么项目
  • 项目八 使用postman实现简易防火墙功能
  • 使用postman 测试restful接口
  • 2008 iis 添加 网站 权限设置网站策划案4500
  • 以自主创新推动能源装备智能化升级,为能源安全构筑“确定性”底座
  • 构建AI智能体:七十六、深入浅出LoRA:低成本高效微调大模型的原理与实践
  • 中国各大网站排名网站源码爬取
  • FFmpeg 安装与配置教程(Windows 系统)