青蛙的烦恼

      池塘里有n片荷叶,围成了一个凸多边形。荷叶的编号分别为1,2,3,。。n,n<=1000, 求一种青蛙的跳跃策略,使得青蛙跳过的距离最短,并且遍历了所有的荷叶

 分析:最短距离并非遍历凸多边形的所有的边。例如:A(2 3),B(6 3),C(4 1),D(1 1),四个点组成的凸多边形,最短的遍历路径为ADBC,经过了对角线DB。

 

使用动态规划解这道题目。子问题为每个节点周围节点数目为1,2,3,..,时候的问题,在解题的过程中,不断的扩大每个节点周围的节点数目。

f(s,L,0)表示从s开始,经过L个顶点的最短距离

f(s,L,1)表示从s+L-1开始,经过L个顶点的最短距离

 

则 f(s,L,0)=min(f(s+1,L-1,0)+dis(s,s+1), f(s+1,L-1,1)+dis(s,s+L-1));

    f(s,L,1)=min(f(s,L-1,1)+dis(s+L-1,s+L-2), f(s,L-1,0)+dis(s,s+L-1));

f[s,1,0]=0;

f[s,1,1]=0;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章