題目描述
把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?(用k表示)5,1,1和1,5,1 是同一種分法。
資料範圍:0<=m<=10,1<=n<=10。
本題含有多組樣例輸入。
解題思路:
動態規劃,兩種情況:1.如果有空盤子,那麼,相當於縮減為m個蘋果放在n-1個盤子裡的問題
2.如果沒有空盤子,那麼必須保證每個盤子都有乙個蘋果,那麼相當於縮減為m-n個蘋果放在n個盤子的問題
遇到的問題:
1.這個i-j>=0沒寫出來,如果蘋果數量小於盤子數量,那麼沒有辦法實現情況2,因此直接為0
dp[i][j] = dp[i][j-1]+(i-j>=0?dp[i-j][j]:0);
2.我不知道初始化dp應該寫到什麼程度,是把所有已知值都寫上嘛?
#include
#include
using
namespace std;
intmain()
for(
int i=
0;i<=n;i++
)for
(int i=
2;i<=m;i++)}
cout<[n]<}}
華為機試 放蘋果
題目描述 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1 是同一種分法。輸入每個用例包含二個整數m和n。0 m 10,1 n 10。樣例輸入 7 3 樣例輸出 輸入描述 輸入兩個int整數 輸出描述 輸出結果,int型 分析 輸入...
華為機試 放蘋果(遞推公式求解)
題目描述 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1 是同一種分法。輸入每個用例包含二個整數m和n。0 m 10,1 n 10。樣例輸入 7 3樣例輸出 public static int count int m,int n ...
華為OJ 放蘋果
放蘋果 題目描述 把m 個同樣的蘋果放在 n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用 k表示 5,1,1和 1,5,1 是同一種分法。輸入 每個用例包含二個整數m和n 0 m 10 1 n 10 n 10 m 10 樣例輸入 7 3樣例輸出 8 計算放蘋果方法數目 輸入值非法...