易碎的鳥蛋 概率DP

2022-07-29 03:18:10 字數 1101 閱讀 8261

時間限制: 1 sec  記憶體限制: 128 mb

提交: 396  解決: 80

[提交][狀態][討論版]

你們知道嗎?西電的跳樓塔上面有乙個鳥巢。某sxbk的教授對這個鳥巢很感興趣。經過仔細觀察,他發現鳥巢中有若干枚蛋。於是他想利用這些蛋做乙個試驗。測試一下蛋的堅固程度。這些蛋應該是具有相同的堅硬度。存在乙個非負整數e,如果從塔的第e層往下扔蛋,蛋不會破,但如果從第e+1層(包括高於e+1層)扔,蛋就會破。你要做一組試驗,來找出e。最簡單的方法是一層層試。但是你有多個蛋是,不必用笨方法,可以用更少的次數找出e。注意這裡的次數都是指對你的方法的最壞情況且蛋破了就不能再用,還有e可以取0(直接放在地上蛋蛋是不會破的)。如果實驗到了最高層蛋還不破,則認為e取最高層的層數。

一行,蛋的個數n和樓的層數n,k<=1000。(中間乙個空格)。

請一直處理到檔案結束。

最少實驗次數。

1 10

2 5

10

3

對於第二個樣例,第一次把乙個蛋從三樓扔下去,如果破了就把另乙個蛋從一樓開始向上測試,如果沒破就從四樓開始向上測試,最壞情況下需要測試三次。

[提交][狀態][討論版]

한국어

#include#include

#include

#include

#include

using

namespace

std;

typedef

long

long

ll;const

int maxn =1000

;#define inf 0x3f3f3f3f

/*dp[i][j]表示從k層以上扔下去蛋會碎而且還有j個鳥蛋

dp[i][j] =

k屬於1-i

max(dp[k-1][j-1],dp[i-k][j])+1,dp[i][j]

*/int

dp[maxn][maxn];

intn ,k;

int dp(int k,int

j)

return

dp[k][j];

}int

main()

}

概率DP初步

題目簡述 乙個r行c列的格仔,起始點在 1,1 終點在 r,c 每一步可能的走法有 不動 向右走 向下走,每走一步花費兩點魔法值,現給出在每一點三種走法的概率,求走完迷宮時所花魔法值的期望。分析 運用dp演算法的話,首先需要確定乙個合適狀態來描述子問題的情況,很明顯本題的狀態可以定義為dp i j ...

概率dp入門

概率dp主要用於求解期望 概率等題目。轉移方程有時候比較靈活。一般求概率是正推,求期望是逆推。通過題目可以體會到這點。poj2096 collecting bugs include include include include include typedef long long ll using ...

骰子 概率dp

因為會有人被彈出佇列,所以我設定的期望dp為 於是有當只剩乙個人的時候,那個人必勝,再往下,先看它在隊首的情況,其他的情況呢,也就是不在隊首的時候呢,於是,連立這兩個方程組,可以得到 所以,就可以利用乙個pow來處理double型來解決這個問題了。include include include in...