青蛙的煩惱

      池塘裏有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;

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