**
//dp[k][m] 的含義是k個雞蛋 移動m次最多能夠確定多少樓層
//第乙個雞蛋扔完,碎了剩下能確定的dp[k - 1][m - 1]下邊的樓層,沒碎剩下能確定的dp[k][m - 1]上 邊的樓層,+1本層
//dp[k][m] = dp[k - 1][m - 1] + dp[k][m - 1] + 1
//dp[k][1]=1;dp[1][m]=m
/ 可直接給出解
if(k == `1
|| n` == `1
|| n` ==2)
//由於 m 為所求值,建立二維陣列時,無法確定 m 值,因此,以 一維陣列 代替 二維陣列 進行計算;則每乙個座標的值等於 當前位置值 + 前一位置值 + 1
// 初始化首列(第一步)
int*dp =
newint
[k +1]
;for
(int index =
1; index <= k; index++
)// 從第二步開始計算
int m =
2;
while
(true
)// 判斷是否滿足條件
if(dp[k]
>= n)
else
}
玻璃球遊戲
題目描述 小x的業餘生活中,有一項是玩滾玻璃球遊戲。某天,小x想到了一種很無趣的玩法,當然,這種玩法就是為了玩看題的你們。小x首先建立了乙個單向軌道,這個單向軌道可以抽象成乙個有向圖,每個頂點的出度都是1,也就是由每個點出發,只有一條邊連向其他的點。小x的遊戲最初規則是這樣的 讓玻璃球從某乙個點出發...
拋雞蛋 玻璃球或圍棋 優化版
題目 乙個100層的大廈,你手中有兩個相同的雞蛋 玻璃球或圍棋 從這個大廈的某一層扔下雞蛋 玻璃球或圍棋 就會碎,用你手中的這兩個雞蛋 玻璃球或圍棋 找出乙個最優的策略,來得知那個臨界層面。分析 這道題比較直觀的想法是通過二分來尋找,但是二分的解法應該不是最優的。這裡討論通過動態規劃的思路來求解。這...
動態規劃解拋雞蛋 玻璃球 問題
昨天早上看了題經典老題,拋玻璃球,也有的版本是拋雞蛋,可惜昨天早上愣是沒做出來,下午忙別的事去了,到了晚上看了chinaunix上的一篇 討論帖才知道如何解,事實上我一開始對題目的理解就錯了,於是根本沒有想到用dp。今天總算有時間整理一下思路,並把 實現出來了。題目是這樣的 乙個100層的大廈,你手...