丟棋子問題2020 12 3

2021-10-11 09:06:52 字數 1007 閱讀 2493

題目描述:

一座大樓有層,地面算作第0層,最高的一層為第 層。已知棋子從第0層掉落肯定不會摔碎,從第層掉落可能會摔碎,也可能不會摔碎。給定整數作為樓層數,再給定整數作為棋子數,返回如果想找到棋子不會摔碎的最高層數,即使在最差的情況下扔的最小次數。一次只能扔乙個棋子。

示例1輸入

10,1

返回值10

說明因為只有1棵棋子,所以不得不從第1層開始一直試到第10層,在最差的情況下,即第10層是不會摔壞的最高層,最少也要扔10次

示例2輸入

3,2返回值2說明

先在2層扔1棵棋子,如果碎了,試第1層,如果沒碎,試第3層

示例3輸入

105,2

返回值14

說明第乙個棋子先在14層扔,碎了則用僅存的乙個棋子試1~13層

若沒碎,第乙個棋子繼續在27層扔,碎了則用僅存的乙個棋子試15~26層

若沒碎,第乙個棋子繼續在39層扔,碎了則用僅存的乙個棋子試28~38層

若沒碎,第乙個棋子繼續在50層扔,碎了則用僅存的乙個棋子試40~49層

若沒碎,第乙個棋子繼續在60層扔,碎了則用僅存的乙個棋子試51~59層

若沒碎,第乙個棋子繼續在69層扔,碎了則用僅存的乙個棋子試61~68層

若沒碎,第乙個棋子繼續在77層扔,碎了則用僅存的乙個棋子試70~76層

若沒碎,第乙個棋子繼續在84層扔,碎了則用僅存的乙個棋子試78~83層

若沒碎,第乙個棋子繼續在90層扔,碎了則用僅存的乙個棋子試85~89層

若沒碎,第乙個棋子繼續在95層扔,碎了則用僅存的乙個棋子試91~94層

若沒碎,第乙個棋子繼續在99層扔,碎了則用僅存的乙個棋子試96~98層

若沒碎,第乙個棋子繼續在102層扔,碎了則用僅存的乙個棋子試100、101層

若沒碎,第乙個棋子繼續在104層扔,碎了則用僅存的乙個棋子試103層

若沒碎,第乙個棋子繼續在105層扔,若到這一步還沒碎,那麼105便是結果

class solution

return cnt;}};

演算法問題 丟棋子的動態規劃問題

解答問題 一座大樓一共有0 n層,地面算第0層,最高一層為第n層。已知棋子從第0層掉落肯定不會摔碎,從第i層掉落可能回摔碎,也可能不會摔碎 1 i n 給定整數n作為樓層數,再給定整數k作為棋子數,返回如果想找到棋子不會摔碎的最高層數,即使在最差的情況下仍的最少次數。一次只能仍乙個棋子。n 10,k...

堆棋子問題

小易將n個棋子擺放在一張無限大的棋盤上。第i個棋子放在第x i 行y i 列。同乙個格仔允許放置多個棋子。每一次操作小易可以把乙個棋子拿起並將其移動到原格仔的上 下 左 右的任意乙個格仔中。小易想知道要讓棋盤上出現有乙個格仔中至少有i 1 i n 個棋子所需要的最少操作次數.輸入描述 輸入包括三行,...

演算法 丟雞蛋問題

解題思路 首先是狀態表示,利用乙個二維陣列,兩個維度分別表示雞蛋的數量和樓層數。然後是狀態轉轉移,從低到高,雞蛋從少到多,遍歷每一種樓層和雞蛋數量的情況。在求每一種組合情況的時候,再從1遍歷樓層,求得對優解。雞蛋丟在每一層的情況都是碎或者沒有碎。先列舉雞蛋或者先列舉樓層都是可以的。這裡的時間複雜度是...