一个顽猴在一座有k级台阶的山上爬山跳跃,猴子上山一步可跳1级或跳3级,试求顽猴上山的N级台阶有多少种不同的跳法; 1.递推设计: 这一问题实际上是一个整数有序可重复拆分问题; 试设置数组应用递推求解,设上k级台阶的不同跳法为f(k)种; (1)、探求f(k)的递推关系; 假设:k=100; 上山最后 ...
分类:
其他好文 时间:
2021-03-16 11:53:16
阅读次数:
0
完全背包问题 递推关系: dp[0][j]=0 dp[i+1][j]=max{dp[i][j-k*w[i]]+k*v[i]|0=1)个 i 物品的情况,与在dp[i+1][j-w[i]]的计算中选择k-1的情况是相同的,所以dp[i+1][j]的递推中k>=1部分的计算已经在dp[i+1][j-w[... ...
分类:
其他好文 时间:
2020-07-25 23:28:08
阅读次数:
69
1、归纳法 两大数学归纳法 题目一 2、递推关系 题目一 题目二 3、方阵 题目一 4、矩阵对角化(重点) 题目一 题目二 题目三 题目四 5、矩阵性质(综合) 题目一 题目二 对于副对角线: 题目三 ...
分类:
其他好文 时间:
2020-07-19 23:44:46
阅读次数:
701
动态规划算法将待求解问题拆分成一系列相互交叠的子问题,通过递推关系定义各子问题的求解策略,并随时记录子问题的解,最终获得原始问题的解,避免了对交叠子问题的重复求解。 在动态规划算法中有三要素: 最优子结构: 是指每个阶段的最优状态可以从之前某个阶段的某个或某些状态直接得到 边界: 是指问题最小子集的 ...
分类:
编程语言 时间:
2020-06-22 22:44:25
阅读次数:
56
题目链接:http://poj.org/problem?id=1958 代码: #include<iostream> #include<cstring> using namespace std; #define maxn 100 typedef long long ll; ll d[maxn],f[ ...
分类:
编程语言 时间:
2020-06-14 12:57:40
阅读次数:
82
前缀与差分 1. 算法分析 1.1 前缀和 定义 s[n] = \(\sum_{i=1}^na[i]\) 递推关系 s[i] = a[i] + s[i - 1] 区间求和 \(\sum_{i=l}^ra[i] = s[r] - s[l - 1]\) 1.2 差分 定义 存在两个数组a(a1, a2, ...
分类:
其他好文 时间:
2020-06-08 10:50:06
阅读次数:
59
小结 解决的问题: 解决递推关系中不好直接写出通项公式的问题,将多个递推关系的系数在矩阵中表示 而对于矩阵的幂运算可以用快速幂,复杂度:O(m^3*logn) 所以算法核心就是找到递推关系对应的矩阵辣 POJ 3420 Quad Tiling 题意:在一个4*n的棋盘上,用1*2的多米诺骨牌来平铺, ...
分类:
其他好文 时间:
2020-05-31 10:58:02
阅读次数:
68
动态规划01背包实现: 借鉴的这篇博文: https://www.cnblogs.com/Christal-R/p/Dynamic_programming.html 题目:在背包容量为8的情况下,根据下图的数据动态规划得到最优解,实现右图所示的程序代码 最重要的就是寻找递推关系式: 定义V[i,j] ...
分类:
编程语言 时间:
2020-05-17 16:03:10
阅读次数:
59
相互递归 都知道递归对于编程的重要性,今天就来谈谈相互递归。 若2者之间存在递推关系,则可以使用相互递归。下面举2个例子。 求pi 根据公式 pi/4 = 1 1/3 + 1/5 1/7 + 1/9 ... 通常相互递归可以通过增加一个参数来抵消掉。 当知道2者之间的递推式,用相互递归实现比较简单 ...
分类:
其他好文 时间:
2020-03-26 12:21:12
阅读次数:
116
动态规划(DP)不是某种具体算法,而是一种思想。 核心在于:把大问题转化为小问题,利用小问题的解推断出大问题的解。 大事化小,小事化了 的思想 一、基本思想 小例子: 上楼梯 今有 n 级台阶。初始时站在 0 级,每次可以向上走 1 级或 2 级。问方案总数? 递推关系:走到 f [ n ] ,要么 ...
分类:
其他好文 时间:
2020-03-25 21:26:11
阅读次数:
77