非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
Posted by gfedcba
at 2009-02-28 03:37:51
on Problem 1088
and last updated at 2009-02-28 03:43:50
// 典型的动态规划,用递归下的记忆化搜索来实现
// 状态转移方程 合法的情况下:DP(i,j) = max( DP(i,j-1), DP(i,j+1), DP(i-1,j), DP(i+1,j) ) + 1;
#include <iostream>
using namespace std;
int matrix[100][100];// 保存原始数据
int cnt[100][100]; // 记录每一个点的最大滑雪长度
int row ,col;
int DP(int i, int j)
{
int max = 0;
// 如果已经处理过,直接返回(记忆化搜索效率之所以高的原因:不重复计算)
if (cnt[i][j] > 0)
{
return cnt[i][j];
}
// 以下四块语句,只对合法的i和j,进行递归(递归的重点就是:剪去所有不合法的,只处理所有合法的!!!)
if (j-1 >= 0)
{
if (matrix[i][j] > matrix[i][j-1])
{
if (max < DP(i, j-1))
{
max = DP(i, j-1);
}
}
}
if (j+1 <= col-1)
{
if (matrix[i][j] > matrix[i][j+1])
{
if (max < DP(i, j+1))
{
max = DP(i, j+1);
}
}
}
if (i-1 >= 0)
{
if (matrix[i][j] > matrix[i-1][j])
{
if (max < DP(i-1, j))
{
max = DP(i-1, j);
}
}
}
// 在这里我曾经很SB地将row错写成col,调试所有的行数等于列数的数据都没有问题,可是一提交就Wa
// 注意,行数可能不等于列数!!!!
if (i+1 <= row-1)
{
if (matrix[i][j] > matrix[i+1][j])
{
if (max < DP(i+1, j))
{
max = DP(i+1, j);
}
}
}
// 将结果记录在cnt数组中(记忆化搜索的重点)
// 如果左右上下都没有一个点的值比这个点的值大,则cnt[i][j] = max+1 = 1
// 否则将左右上下各点最大滑雪长度记录在max中, 则cnt[i][j] = max+1
// 这就是max为什么要初始化为0的原因.
return cnt[i][j] = max + 1;
}
int main()
{
int i, j;
cin>>row>>col;
// 初始化数据
for (i=0; i<=row-1; i++)
{
for (j=0; j<=col-1; j++)
{
cin>>matrix[i][j];
cnt[i][j] == 0;
}
}
// 处理每一个点,将其最大滑雪长度保存在cnt数组里面
for (i=0; i<=row-1; i++)
{
for (j=0; j<=col-1; j++)
{
DP(i, j);
}
}
// 遍历数组,求最大值,在这里因为将cnt错写成matrix而wa了一次,真不应该!!!
for (i=0; i<=row-1; i++)
{
for (j=0; j<=col-1; j++)
{
if (cnt[0][0] < cnt[i][j])
{
cnt[0][0] = cnt[i][j];
}
}
}
cout<<cnt[0][0]<<endl;
return 0;
}
Followed by:
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(16) iShowFun
2009-03-07 21:13:05
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(2032) acm522942
2009-05-01 17:11:13
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(2032) nijunyan3633
2009-05-13 23:28:23
- 多谢楼主~懂了,谢谢
(2032) Better_More
2009-07-24 14:50:52
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(6) zhanglongpan
2009-07-28 12:41:12
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(22) 810974380
2009-08-07 15:19:08
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(2032) mmx21
2009-08-09 11:03:56
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(8) mmx21
2009-08-09 11:04:35
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(2032) yxymy
2009-08-17 13:50:24
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(14) yxymy
2009-08-17 13:51:46
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(2032) gongshaoqing
2009-08-18 14:11:08
- xxxxxxxxxxxxxx
(2032) gongshaoqing
2009-08-18 14:11:32
- 楼主这么早就起来A题了,呵呵~·
(0) 12619
2009-08-20 10:54:27
- 不理解记忆化搜索的,可以联想一下费波纳契数列的递归算法。而所谓的记忆化搜索,只不过是把已经算出的子结果保存,当算到这个结点时,直接取值,而不重复地递归计算下去罢了。就是避免重复计算,没什么难理解的。
(71) erikajason
2009-09-17 20:08:05
- 这个其实就是DFS,只不过加一个记忆话而已。很好理解。
(0) 070220219
2009-11-08 15:13:58
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(1193) tankadozmy
2010-02-01 22:18:38
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(1150) 1234556
2010-03-14 09:39:19
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(756) hdyxyx
2010-05-01 17:25:36
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(88) comicxmz001
2010-06-10 21:55:01
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(6) huaigu
2010-08-04 16:05:43
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(3) lovemj
2010-08-25 14:18:10
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(2032) b09
2010-10-29 21:08:11
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(2032) b09
2010-10-29 21:08:13
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(2032) b09
2010-10-29 21:08:33
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(2032) junqi1984
2011-01-07 08:53:50
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(38) 1000010314
2011-03-18 21:49:20
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(6) tianjun
2011-04-15 14:25:22
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(65) darku45
2011-06-10 03:38:09
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(2) 1075482900
2011-07-09 18:32:02
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(34) hustcswgy
2011-07-20 21:31:16
- Re:大哥,你怎么这么牛啊,我就想不出来这个递归+动态规划的方法,简直太神奇了。。。为什么我这么笨啊。。。哎。。。
(0) iwlam525
2011-08-06 23:38:51
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(1233) MathMars
2011-11-11 00:48:24
- 尼玛啊!搞这么长标题,眼花了啊!!!
(0) CSGrandeur
2012-01-27 12:38:34
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(2032) DjvuLee
2012-02-25 20:48:43
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(18) 2010310200619
2012-04-14 15:06:44
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(2032) renxuandi2000
2013-04-09 16:37:21
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(7) cailongx
2013-04-27 15:20:18
- 壮观的标题页。
(2032) gu_castle
2014-06-17 13:26:52
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(2034) Query
2014-07-04 23:02:15
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(18) ace462
2015-08-10 23:26:24
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(2032) 1508060420
2016-09-19 18:02:31
- Re:非常经典的动态规划,用递归下的记忆化搜索来实现。我将整个实现流程和很多容易错的地方都注释起来,希望能够对那些比较困惑的朋友有所帮助。这程序花了我半个小时调试和写注释,题不在多,经典则行。好晚了,好累,睡觉~~
(2089) SOCinder
2018-09-28 18:50:52
Post your reply here:
|