POJ 1661 Help Jimmy

来源:互联网 发布:淘宝内衣小学生模特 编辑:程序博客网 时间:2024/05/31 19:41

        这算是一个经典的动态规划题了吧,由于是中文题目,所以题目很好理解.

 

        这个题目的关键也就是找出状态转移方程,然后跟据它写出递归函数(当然也可以用迭代),我越来越意识到递归是个很神奇的东西,和分治法联系在一起的时候问题一下子就变得豁然开朗了.

 

        由于下落的时间是一定的,所以只需要求出最短的爬行时间再加上下落时间就可以了.

        大概思路就是下面的:

 

                               0,   k=N+1

FindMin(x,k) =         max{x  -  aPlatform[k].Lx  +  FindMin(  aPlatform[k].Lx  ,  NextLeft  ),

                                       aPlatform[k].Rx  -  x  +  FindMin(  aPlatform[k].Rx  ,  NextRight  )     },  0<=k<=N

 

 

 

 

 

 

 

还可以参照这个的解释,算是很详尽的了:

http://www.cppblog.com/mythit/archive/2009/06/26/88539.aspx