典型的记忆化递归问题。
这类问题的记忆主要是利用数组记忆,那么已经计算过的值就可以直接返回,不需要进一步递归了。
注意:下标越界,递归顺序不能错,及时判断是否已经计算过值了,不要多递归。
或者直接使用动态规划法填好表也是可以的。
#include
#include
const int MAX_N = 21;
int W[MAX_N][MAX_N][MAX_N];
int g...
分类:
其他好文 时间:
2014-08-12 10:26:23
阅读次数:
232
比较经典的动态规划的题目了
一般动态规划的想法都是先判断是否有最优子结构,无后效性。接着从状态转移入手,尽量细分状态(即给定N得到N+1),完了再递推计算
难点:转移方程,其一般也难在如何描述一个结点
有时候不太好做就结合使用记忆化搜索(从大到小搜索,因为多个小的可能会组成一个大的导致无效计算过多)
/**************************************...
分类:
其他好文 时间:
2014-08-12 09:04:43
阅读次数:
181
题目链接:uva 1541 - To Bet or Not To Bet
题目大意:在一个棋盘上进行游戏,给定棋盘长度m,不算起始和终止,以及走的步数t。从起点开始,每轮可以丢一枚硬币,正面移动2步,方面移动1步;中间的格子有写操作,包括移动一定步数,停止一次操作。问说在t步内到达终点的概率。
解题思路:dp[i][j]表示走到第i格用掉j步的概率,然后记忆化搜索,因为保证状态重复,并...
分类:
其他好文 时间:
2014-08-12 00:40:03
阅读次数:
255
题意读了半年,英语太渣,题意是摆两个棋子在棋盘上作为起点,但是起点不能在#上,然后按照图的指示开始走, 右 ^上 v下,走的时候只能按照图的指示走,如果前方是 #的话,可以走进去,但是 走进去之后便不能再走了,走的途中两个棋子不能相碰,但是最终都走到同一个#里是没事的,并且若是能走 无限步的话 输出 -1, 例如 >
一开始被输出-1给困住了,因为除了 .> <这样以外 还可以刚...
分类:
其他好文 时间:
2014-08-11 21:19:23
阅读次数:
343
一开始我还天真的一遍DFS求出最长链以为就可以了不过发现存在有向环,即强连通分量SCC,有向环里的每个点都是可比的,都要分别给个集合才行,最后应该把这些强连通分量缩成一个点,最后保证图里是 有向无环图才行,这个时候再找最长链,当然缩点之后的scc是有权值的,不能只看成1,缩点完了之后,用记忆化搜索D...
分类:
其他好文 时间:
2014-08-10 18:17:30
阅读次数:
199
也是经典的计数DP题,想练练手,故意不写记忆化搜索,改成递推,还是成功了嘞。。。不过很遗憾一开始WA了,原来是因为判断结束条件写个 n或s为0,应该要一起为0的,搞的我以为自己递推写挫了,又改了一下,其实递推没问题,就是写出来不好看#include #include #include #includ...
分类:
其他好文 时间:
2014-08-10 15:25:10
阅读次数:
216
果然书要结合题来看才有效果通过这题对记忆化搜索有了初步的理解碰到没有访问过的点 进行搜索 之后记录下该点能滑出的最远距离碰到搜索过的点 直接加上 dp[i] 就可以了#include#include#include#include#include#include#include#define mem...
分类:
其他好文 时间:
2014-08-10 01:42:39
阅读次数:
395
这个题也可以用递归加记忆化搜索来A,不过由于这题比较简单,所以用来做母函数的入门题比较合适
以展开后的x4为例,其系数为4,即4拆分成1、2、3之和的拆分数为4;
即 :4=1+1+1+1=1+1+2=1+3=2+2
这里再引出两个概念整数拆分和拆分数:
#include
#include
#include
#include
#include
#inclu...
分类:
其他好文 时间:
2014-08-09 21:30:59
阅读次数:
202
本题有人写是DP,不过和DP还是有点差别的,应该主要是记忆化 Momoization 算法。
思路就是递归,然后在递归的过程把计算的结果记录起来,以便后面使用。
很经典的搜索题目,这种方法很多题目考到的。
关键还是如何把代码写清晰工整了,O(∩_∩)O~。
#include
const int MAX_N = 101;
int R, C;
int arr[MAX_N][MAX_N];
i...
分类:
其他好文 时间:
2014-08-08 21:28:16
阅读次数:
344
这题 我开始的做法是 记忆化搜索 但是tm地竟然tle了。。。很想不通 因为数据很小啊 就100 虽然方案的总数可能会很大..然后 我就去百度 记忆化搜索 看下是不是我用错方法了 事实证明 我虽然没有用错 但还是 学到了很多=-=、其实 我很早以前 也看过关于 记忆化搜索的一些介绍 但是 并没有太多...
分类:
其他好文 时间:
2014-08-07 18:30:31
阅读次数:
277