演算法 放蘋果問題

2021-08-20 12:04:05 字數 590 閱讀 6773

1. 在說放蘋果問題之前,先說下斐波那契數列遞迴求解時的時間複雜度。

由公式f(n) = f(n - 1) + f(n - 2)很容易畫出其遞迴樹:

每個節點都會呼叫一次f(n),滿二叉樹節點數m = 2^h - 1,h是樹高度。

則o(n) = 2^n.

2.放蘋果問題

把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?(用k表示)5,1,1和1,5,1 是同一種分法。

遞迴解法:

public static int fun(int m, int n)
動態規劃解法:

public static int fun2(int m, int n) 

for (int i = 1; i <= n; i++)

for (int i = 2; i <= m; i++) else }}

return dp[m][n];

}

演算法 放蘋果

把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1 是同一種分法。第一行是測試資料的數目t 0 t 20 以下每行均包含二個整數m和n,以空格分開。1 m,n 10。對輸入的每組資料m和n,用一行輸出相應的k。設f m,n 為m個蘋果...

放蘋果問題

題目來自 總時間限制 1000ms 記憶體限制 65536kb 描述 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1 是同一種分法。輸入第一行是測試資料的數目t 0 t 20 以下每行均包含二個整數m和n,以空格分開。1 m,n ...

放蘋果問題

問題描述 將m個蘋果放到n個空盤子中,允許盤子為空,允許乙個盤子放任意個蘋果,問總共有多少種放法。注意,不考慮盤子的次序,比如,將7個蘋果放到3個盤子中,5 1 1和1 5 1是同一種放法。解答 假設將m個蘋果放到n個盤子中的放法有f m,n 種,從最簡單的情況考慮起。當m 0或者n 0,f m,n...