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...