⼩明的抽屜⾥有n個遊戲幣,總⾯值m,遊戲幣的設定有1分的,2分的,5分的,10分的,⽽在⼩明 所擁有的遊戲幣中有些⾯值的遊戲幣可能沒有,求⼀共有多少種可能的遊戲幣組合⽅式? 輸⼊:輸⼊兩個數n(遊戲幣的個數),m(總⾯值)。 輸出:請輸出可能的組合⽅式數;
解題思路
暴力求解顯然是一種能解決的辦法,但是考慮到效能問題,暴力求解pass。
這裡考慮使用動態規劃進行求解。首先很容易列出乙個狀態表,水平方向表示總金額,豎直方向表示使用的遊戲幣個數。
例如我們想求出5個硬幣組成面值為6的情況fun(5,6),其實我們只需要針對fun(4,6-1),fun(4,6-2),fun(4,6-5),fun(4,6-10) 這四種情況求和即可。也就是說只要知道用少乙個硬幣得到總面值-硬幣值的結果就可以知道當前的結果。
下面我列出了前6個資料的動態規劃**
硬幣數\總面值12
3456
1110
0102
0111
0130
0111
1400
0111
5000
0116
0000
01**邏輯實現
public class dp ;
public static void main(string args)
public static int dp(int n, int m) }}
return dp[n][m];
}}
DNF遊戲幣拼團
dnf遊戲幣拼團活動方案 活動目的 通過拼團的方式來實現老拉新和現實新使用者轉換,可以通過有需求的使用者來告知好友來進行使用者裂變 slogan 拼團首發,dnf15元1500萬 活動流程 a g使用者發起開團 拼團商品固定為30元遊戲幣 b 邀請新使用者進行拼團,3 5人即可成團,只有新使用者可以...
動態規劃之跳躍遊戲
跳躍遊戲 給出乙個非負整數陣列,你最初定位在陣列的第乙個位置,陣列中的每個元素代表你在那個位置可以跳躍的最大長度,判斷你是否能到達陣列的最後乙個位置。注意事項 陣列a的長度不超過5000,每個元素的大小不超過5000 樣例 1 輸入 2,3,1,1,4 輸出 true 樣例 2 輸入 3,2,1,0...
動態規劃之硬幣組合問題
問題 如果我們有面值為1元 3元和5元的硬幣若干枚,如何用最少的硬幣湊夠11元?動態規劃的本質是將原問題分解為同性質的若干相同子結構,在求解最優值的過程中將子結構的最優值記錄到乙個表中以避免有時會有大量的重複計算。例如硬幣組合問題,若求湊夠11元的最少硬幣數,可以先從湊夠0元 1元 2元 的子結構開...