硬幣找零是一個非常流行的問題,詢問你有多少種方法得到的使用硬幣ñ美分總和(C [0],C [1] ... C [K-1]) 。 DP解決方案是使用方法 s(N,K)= s(N,K-1)+ s(NC [K-1],K),其中s(N,K)用第一K個硬幣到達總數N(按升序排列)。 這意味着使用第一個K硬幣賺取N美分的方法的數量是在不使用第K個硬幣添加到達到第N個硬幣的方式的數量的情況下達到相同總和的方式的總和。我真的不明白你如何能夠遇到這個解決方案,以及它是如何合理地進行邏輯的。有人可以解釋嗎?DP硬幣找零說明
Q
DP硬幣找零說明
2
A
回答
3
解決一個DP時,最重要的是把問題縮小到一組簡單的子問題。大部分時間「簡單」意味着參數較小,在這種情況下,如果總和較小或剩餘硬幣值較小,則問題更簡單。
我的思維來解決這個問題的方法是:好吧,我有一組硬幣的,我需要計算的方法,我可以形成一個給定的款項數目。這聽起來很複雜,但如果我少了一枚硬幣,它會容易一些。
這也有助於思考最底層的情況。在這種情況下,如果你只有一枚硬幣,你就知道你可以用多少種方式組成一筆給定的金額。這不知何故表明,簡化問題的減少可能會減少不同硬幣的數量。
+0
謝謝,我沒有使直到我讀到你的答案:P Brainfart – arilato
相關問題
- 1. DP硬幣找零算法 - 從表
- 2. 硬幣更換 - DP
- 3. 硬幣找零,但只有硬幣
- 4. 硬幣找零理解爲一個DP的解決方案
- 5. 硬幣找零DP算法打印所有組合
- 6. 硬幣找零優化
- 7. 子集和(硬幣找零)
- 8. 硬幣找零問題C++
- 9. 硬幣更換DP解決方案,以跟蹤硬幣
- 10. 硬幣找零,動態規劃重新
- 11. 硬幣找零程序允許
- 12. 硬幣找零(動態規劃)
- 13. 硬幣找零算法動態規劃
- 14. 硬幣折騰分數爲零
- 15. JavaScript的 - 什麼不對的硬幣找零算法
- 16. 硬幣更改算法 - DP與1D陣列
- 17. 硬幣
- 18. 硬幣兌換
- 19. 硬幣更改 - 查找最大數量
- 20. 將如何在這種硬幣找零情況下,貪婪的工作
- 21. 爲什麼我不能在coin change dp中重複使用同一枚硬幣?
- 22. Android如何特別說明9patch圓角半徑dp?
- 23. 假硬幣問題
- 24. 模擬擲硬幣
- 25. 不顯示「硬幣」
- 26. Prolog:硬幣更換
- 27. 分而治之 - 最小硬幣 - 返回硬幣作爲陣列
- 28. 快速硬幣更換算法最多3個硬幣在C
- 29. 將硬幣添加到我現有的硬幣中
- 30. 聲明符是否有零聲明說明符?
S [N,k]的任一第K使用(其爲S [NC [K-1],K])或未被(其爲S [N,K-1]) – Herokiller