这是我第一次真正意义上的完成动态规划问题.这个问题,并不难.按照各个步骤进行:
1.最优子结构.
2.重叠子问题.
3.列出状态转移方程.
4.写出递归式.
5.构造最优解.
最主要的,就是状态转移方程的那个步骤.一度让我黯然.好在,后来,自己从"状态转移"这四个字发现了,方法,至少是对于这个问题的方法.从上一个最优子结构出发,看看如何才能构成当前的最优子结构.这样,最终就会构造出原问题的最优解.之后,边界条件之类的,自然就出来了.
好久没有新东西了,用了2个月的时间学习了C++.现在就是通过写这些东西来熟练使用C++.真不错,真不错,加油.
// ITA15-6.cpp -- 2011-07-04-22.50
// Completed at 2011-07-06-23.34.
// It's the greatest cood all of I have cooded!
// Much konwledge has been mentioned, improve myself.
// Continue Learning English, for write good note.
#include "stdafx.h"
#include "Chessboard.h"
int _tmain(int argc, _TCHAR* argv[])
{
Chessboard chessboard(5, 40) ;
std ::cout << chessboard.calculateMaxWeightValueAndOptimalRoute(0, 2, 4, 3) << std ::endl ;
chessboard.printOptimalRoute() ;
std :: cout << std ::endl ;
std ::cout << chessboard.calculateMaxWeightValueAndOptimalRoute(0, 3, 4, 3) << std ::endl ;
chessboard.printOptimalRoute() ;
return 0 ;
}