POJ 1925 Spiderman 動態規劃

2022-05-28 07:51:11 字數 817 閱讀 9112

詳見**:

#include #include 

#include

#include

#include

#include

#define inf 0x3f3f3f3f

#define maxn 1000005

using

namespace

std;

/*題意:給定n個柱子,現在要在這n個柱子之間搖擺,直至到達最右端的那乙個柱子,問最少要

搖擺多少次. 搖擺的時機是在開始的時候或者是從某一點搖擺到某個對稱的點時,保

證所有的柱子的高度不低於出發點的高度.

解法:設dp[i]表示在x座標為i時候所需要的最少搖擺次數.這裡有乙個準備工作就是計算出

每根柱子的乙個可接受區間.計算的結果是對於第k個柱子範圍是[ ceil(xk-sqrt(2*yk*y1-y1*y1)), xk-1 ]

然後對每根柱子所能夠接受的區間內進行動態規劃

dp[i] = max(dp[k] + 1), 其中要求k在i號柱子接受的區間內

*/int

n, dp[maxn];

struct

node e[

5005

];int

dp()

else}}

return ret == inf ? -1

: ret;

}int

main()

printf(

"%d\n

", dp());

}return

0;

}

POJ 1925 Spiderman 動態規劃

詳見 include include include include include include define inf 0x3f3f3f3f define maxn 1000005 using namespace std 題意 給定n個柱子,現在要在這n個柱子之間搖擺,直至到達最右端的那乙個柱子...

poj解題報告 1925

題意 給定n個塔的橫座標和高度,保證高度各不相同且橫座標遞增,蜘蛛俠可以向乙個塔射蛛絲然後盪到當前的相對位置,求最少要用多少次蛛絲。分析 dp i 代表著當他到x軸i的位置時最少搖擺了幾次。因為每次搖擺他都到了關於被他蛛網固定的建築的對稱位置。那麼他的高度在每次切換建築目標時都是不變的。如下 inc...

POJ 1088 滑雪 動規

滑雪 time limit 1000ms memory limit 65536k total submissions 75664 accepted 28044 description michael喜歡滑雪百這並不奇怪,因為滑雪的確很刺激。可是為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡底,你...