- 博客(4)
- 收藏
- 关注
原创 动态规划(2)——0-1背包问题
我们的递归公式 dp[i][j] = max(dp[i-1][j] , dp[i-i][j-w[i]]+v[i]). 可以看到是靠里面两个选来得出的。1.不放这个物品——也就是0,那么此时dp[i][j]的大小就是上一个物品价值的最大值即dp[i][j] = dp[i-1][j],因为我没放东西,所以跟上一个相同。2.放下这个物品——也就是1,那么此时dp[i][j]就需减去i物品的重量,并且加上物品的价值,dp[i][j] = dp[i-1][j-w[i]] + v[i].1.明确dp数组以及其含义。
2024-03-08 17:10:58
625
1
原创 动态规划入门篇——斐波那契数列与爬楼梯问题
动态规划(Dynamic Programming,简称DP)是运筹学的一个分支,也是求解多阶段决策过程最优化问题的一种方法。它主要用来解决一类最优化问题,通过将复杂问题分解成若干个子问题,并综合子问题的最优解来得到原问题的最优解。动态规划的核心在于对问题的状态进行定义和描述状态之间的关系,使得问题能够以递推(或者说分治)的方式解决。简称DP,在解决算法问题中,如果这个问题是由多个子问题重叠,那么使用动态规划来解决问题是最好的选择,它的每一个状态都需要上一个状态推导而成。
2024-03-07 18:54:15
669
原创 C-分支循环语句
C语言中的分支循环语句是控制程序流程的重要手段。通过合理使用if语句、switch语句、for循环和while循环,我们可以轻松地实现复杂的程序逻辑。在实际编程中,根据需求选择合适的分支循环语句非常重要。
2023-11-13 14:01:59
119
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人