比较
- 在DP中,一共用两个计算方式,一种是自底向上,也就是递推方式,这是最常见的DP方式。适用于简单的几维DP过程,一般来说,状态表示用了几维,就需要写几层for循环遍历。这种DP方式当维度较高时,写起来比较麻烦。
- 另一种是自顶向下的计算过程,也就是递归过程。但是在递归时,将已经算过的值存起来,避免重复计算。这就是记忆化搜索。这种适用于高维的DP或者状态转移比较复杂的情况。缺点时有可能出现栈溢出的情况。
参考问题: 321.棋盘分割
参考链接: 递推与记忆化搜索的区别
double数组初始化问题
double f[N];
memset(f,-1,sizeof());
这条语句时将double初始化成Nan。(Not a number的意思)