动态规划

阳洞洞16 小时前
算法·leetcode·动态规划·01背包问题
leetcode 2787. Ways to Express an Integer as Sum of Powers题目描述这道题是0-1背包问题。可以理解为,有一个最大容量是n的背包,有n个物品,第i个物品的重量是i^x,问装满背包有多少种装法。题目要求必须是互不相同的数的x次幂的和等于n,那就表示每个数只能用一次,也就是每个物品只有一个,所以这个问题是0-1背包问题。
阳洞洞16 小时前
算法·leetcode·动态规划·完全背包问题
leetcode 279. Perfect Squares本题也是完全背包问题。并且本质上与第322题一模一样。要求的是装满背包最少需要多少个物品。与第322题一样,dp数组的初始化需要仔细考虑。详见leetcode 322. Coin Change
明月看潮生20 小时前
python·算法·青少年编程·动态规划·编程与数学
青少年编程与数学 02-016 Python数据结构与算法 14课题、动态规划课题摘要: 动态规划(Dynamic Programming,简称DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学等领域中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。
勤劳的进取家1 天前
数据结构·python·算法·贪心算法·排序算法·动态规划
贪心算法之最小生成树问题贪心算法在每一步都选择局部最优的边,希望最终得到整体最优的生成树。常见的两种 MST 算法为 Kruskal 算法 和 Prim 算法。这两者均满足贪心选择性质和最优子结构性质,即:
知星小度S1 天前
算法·动态规划
算法训练之动态规划(四)——简单多状态问题♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥
阳洞洞1 天前
算法·leetcode·动态规划·完全背包问题
leetcode 322. Coin Change这道题也是完全背包问题。注意与第518题和第377题对比。这道题要求的是最少可以用多少个物品装满背包,不关心所选物品的组合方式和排列方式。因此,外层循环既可以是对物品的遍历,也可以是对容量的遍历。
aaaweiaaaaaa3 天前
c语言·数据结构·c++·算法·贪心算法·蓝桥杯·动态规划
蓝桥杯c ++笔记(含算法 贪心+动态规划+dp+进制转化+便利等)+++小蓝在黑板上连续写下从 11 到 20232023 之间所有的整数,得到了一个数字序列: S=12345678910111213…20222023
阳洞洞3 天前
算法·leetcode·动态规划·完全背包问题
leetcode 377. Combination Sum IV这道题也是完全背包问题。这道题和第518题几乎一摸一样,所不同的是,第518题要求的是组合数,而第377题要求的是排列数。虽然本题题目描述中说求的是组合数,但从例子1中(1,1,2)和(2,1,1)被当作两个不同的组法可以看出实际上求的是排列数。求排列数,外层循环必须是对背包容量进行遍历,内层循环必须是对物品遍历。
Wood_Like3 天前
算法·动态规划
从递归入手一维动态规划F(i) = F(i-1) + F(i-2)每个点都往下展开两个分支,时间复杂度为 O(2n) 。在上图中我们可以看到 F(6) = F(5) + F(4)。
Cloud_.3 天前
java·蓝桥杯·动态规划·01背包·蓝桥杯算法实战分享
蓝桥杯-小明的背包(动态规划-Java)0/1背包问题是经典的动态规划问题,具体描述如下:解题思路:输入数据 首先,程序通过 Scanner 从输入中读取数据: n 表示物品的数量。 v 表示背包的最大容量。 接着读取每个物品的重量和价值,保存在二维数组 a 中。
ChoSeitaku4 天前
c++·蓝桥杯·动态规划
NO.82十六届蓝桥杯备战|动态规划-从记忆化搜索到动态规划|下楼梯|数字三角形(C++)因为上楼和下楼是⼀个可逆的过程,因此我们可以把下楼问题转化成上到第n个台阶,⼀共有多少种⽅案。 解法:动态规划
whltaoin4 天前
算法·动态规划
动态规划算法深度解析:0-1背包问题(含完整流程)0-1背包问题是经典的组合优化问题:给定一组物品(每个物品有重量和价值),在背包容量限制下选择物品装入背包,要求总价值最大化且每个物品不可重复选取。
银河小铁骑plus4 天前
算法·leetcode·动态规划
力扣hot100_动态规划动态规划你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
xuanjiong5 天前
算法·蓝桥杯·流程图·动态规划
纯个人整理,蓝桥杯使用的算法模板day3(完全背包dp问题),手打个人理解注释,超全面,且均已验证成功(附带详细手写“模拟流程图”,全网首个与01背包代码对别不同点,存在如以下注释区别,使之实现重复选择该物品 查阅了几乎网上所有资料,均只指出与01背包在状态转移方程的区别,且没有统一问题背景,造成初学者难以区分二者的所有实质性不同,以及相同问题背景下的不同求解结果。 基于此背景,作者以个人理解为主,专门设立统一问题背景,并标注出所有不同(代码注释形式,仅针对标注修改的行,未标注修改的,均与01背包代码保持一致),以及各个不同处所产生的实际功能 —》且附带模拟流程图,保证实际应用绝对正确,大家也可学习作者是如何进行模拟,期待能够帮助你 (ps:
Dream it possible!6 天前
c++·leetcode·动态规划·完全背包
LeetCode 热题 100_完全平方数(84_279_中等_C++)(动态规划(完全背包))给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。
勤劳的进取家6 天前
数据结构·python·算法·贪心算法·排序算法·动态规划
贪心算法的使用条件贪心算法是一种在每一步选择中都采取当前状态下最优(局部最优)的策略,从而希望最终得到全局最优解的算法。其核心思想是:“目光短浅” 地选择当前最优解,不回溯、不瞻前顾后。
飞川撸码6 天前
算法·leetcode·golang·动态规划
【LeetCode 热题100】139:单词拆分(动态规划全解析+细节陷阱)(Go语言版)给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请判断 s 是否可以由字典中出现的单词拼接成。
浪漫血液&6 天前
算法·动态规划
OJ--第N个泰波那契数列1137. 第 N 个泰波那契数 - 力扣(LeetCode)1 状态表示:dp[i]2 状态转移方程:dp[i]=dp[i-1]+dp[i-2]+dp[i-3]
ゞ 正在缓冲99%…7 天前
java·算法·动态规划
leetcode221.最大正方形
努力也学不会java7 天前
java·数据结构·算法·leetcode·动态规划
【动态规划】深入动态规划 非连续子序列问题什么是动态规划中的非连续子序列问题?动态规划中的非连续子序列问题是指在一个给定的序列中,寻找满足特定条件的非连续子序列,以达到某种最优目标。 例如,在最长递增子序列(LIS)问题中,给定一个整数序列,需要找出一个子序列,使得该子序列中的元素是递增的,且子序列的长度最长。这个子序列中的元素在原序列中不一定是连续的。 解决这类问题通常使用动态规划的方法。以最长递增子序列问题为例,定义状态dp[i]表示以第i个元素结尾的最长递增子序列的长度。初始时,每个dp[i]都设为 1,因为单个元素本身就是一个长度为 1