1
A
回答
0
我想通過使用dynamic programming來解決這個問題。
下面是一些僞代碼,讓你開始:
Procedure num_solutions(n, k, m):
# Initialize memoization cache:
if this function has been called for the first time:
initialize memo_cache with (n+1)*(k+1)*(m+1) elements, all set to -1
# Return cached solution if available
if memo_cache[n][k][m] is not -1:
return memo_cache[n][k][m]
# Edge case:
if m is equal to 1:
# Solution only exists if 1 <= m <= k
if n >= 1 and n <= k, set memo_cache[n][k][m] to 1 and return 1
otherwise set memo_cache[n][k][m] to 0 and return 0
# Degenerate case: No solution possible if n<m or n>k*m
if n < m or n > k * m:
set memo_cache[n][k][m] to 0 and return 0
# Call recursively for a solution with m-1 elements
set sum to 0
for all i in range 1..k:
sum = sum + num_solutions(n - i, k, m - 1)
set memo_cache[n][k][m] to sum and return sum
相關問題
- 1. AngularJS - $ scope變量不具有約束力
- 2. CVXPY約束與N個變量
- 3. 具有約束的樣本,矢量化
- 4. 具有度量約束的泛型類
- 5. Java:聲明變量具有多個通用的「約束」
- 6. 具有相同變量值的多個自動佈局約束
- 7. 具有分組約束的前n個整數的排列
- 8. 求解具有多個變量和不等式約束條件的多個方程
- 9. 具有可變數量變量的類
- 10. 具有給定約束條件的分區數量
- 11. 約束與變量
- 12. 具有約束條件的Java多變量非線性優化程序庫
- 13. 變量的cplex約束函數
- 14. 解決約束多變量方程 - 巧克力
- 15. 具有未知數量變量的mod_rewrite
- 16. Knockout複雜變量不具約束力
- 17. 約束數量
- 18. 兩個因子變量之間具有相等約束的線性模型
- 19. 具有兩個變量的組數據
- 20. 具有約束力的knockout.js
- 21. 具有適當比率約束和重量約束的揹包算法
- 22. 具有參數約束的F#函數
- 23. Choco解算器約束/變量定義
- 24. 具有多個「LIKE」約束的TableAdapter
- 25. 具有唯一約束的批量插入語句
- 26. 如何使用optaplanner解決非線性約束多變量方程 - Java的
- 27. 增量式SMT解算器具有降低特定約束的能力
- 28. QML:StackView和C++約束變量
- 29. 非類型變量約束
- 30. 如何用SymPy中的方程組表示具有其他變量的變量?
應用幾何總和,那麼二項式定理和二項系列分母。 – LutzL