動態規劃方法計算猜拳遊戲

2021-09-12 07:44:57 字數 622 閱讀 3048

問題描述:小q和小騰用卡片猜拳(石頭、剪刀、布)。小q贏了得1分。給出了總卡片數n,和小q的總得分s。在已確定小騰的出牌時,求小q有多少種方案?

解析:① 這個用概率的方法可以直接表示出計算公式::c(n,s)*2^(n-s)。

② 動態規劃。用 dp[i][j] 表示卡片數為 i ,得分為j時的方案數;針對第i張之前的方案可能有兩種情況:如果此張得分了,之前的方案為 dp[i-1][j-1];如果此張沒得分,之前的方案為 dp[i-1][j] 。移動公式為:dp[i][j]  =  2*dp[i-1][j] + dp[i-1][j-1] 。(沒得分出牌方案有兩種,得分僅有一種)。

#include using namespace std;

#define ll long long

#define m 1000000007

ll dp[2005][2005];

int solve(vector card, int score)

} return dp[card.size()][score];

}int main()

cout << solve(a, s) << endl;

return 0;

}

暗黑遊戲(動態規劃)

description 暗黑遊戲中,裝備直接決定玩家人物的能力。可以使用pg和rune購買需要的物品。暗黑市場中的裝備,每件有不同的 pg和rune 能力值 最大可購買件數。kid作為暗黑戰網的乙個玩家,當然希望使用盡可能少的pg和rune購買更優的裝備,以獲得最高的能力值。請你幫忙計算出現有支付能...

傳球遊戲 動態規劃

上體育課的時候,小蠻的老師經常帶著同學們一起做遊戲。這次,老師帶著同學們一起做傳球遊戲。遊戲規則是這樣的 n個同學站成乙個圓圈,其中的乙個同學手裡拿著乙個球,當老師吹哨子時開始傳球,每個同學可以把球傳給自己左右的兩個同學中的乙個 左右任意 當老師再次吹哨子時,傳球停止,此時,拿著球沒傳出去的那個同學...

動態規劃方法

1 思想 避免重複的計算,先將計算過的值儲存下來,如果發現有相同的步驟,直接將事先儲存好的值拿出來。動態規劃其實質上是通過開闢記錄表,記錄已求解過的結果,當再次需要求解的時候,可以直接到那個記錄表中去查詢,從而避免重複計算子問題來達到降低時間複雜度的效果。實際上是乙個空間換時間的演算法。動態規劃,在...