方法一、
f(i,j):前i個盤總共放j個果的方法數,結果在f(n,m)中,1個盤時不論果數多少,只有1種方法。
f(i,j)=f(i-1,j)+f(i,j-i),前者表示第i個盤為空(保證至少1個盤空)放j個果的方法數,
後者表示沒有1個盤空的方法數,為保證這點,先在每個盤放1個,剩下j-i個任意放,
方法二、
f(i,j):前i個盤共放j個果的方法數,結果在f(n,m)中,1個盤時不論果數多少,只有1種方法。
f(i,j)=sum(f(i-1,j-k*i)),j-k*i>=0,
f(i-1,j-k*i)表示其中有k個盤各放i個的方法數。
dp是王道,狀態表示要明確,轉移方程更要考慮好,初值多少,結果在**都要想清楚。
其中方法二中用了整數拆分的思想,更清楚的解釋請看轉貼的pku 1664 放蘋果 csflx 解題分析
pku 1664 放蘋果 整數劃分
題目 放蘋果 description 把m個同樣的蘋果放在n個 同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1 是同一種分法。input 第一行是測試資料的數目t 0 t 20 以下每行均包含二個整數m和n,以空格分開。1 m,n 10。output 對...
pku 1664 放蘋果 整數拆分 解題報告
一 題目 放蘋果 二 題目意思 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1 是同一種分法。三 解決的辦法 剛開始想了很久,都想不出來!最終看到網上有關整數劃分問題,就變得簡單了!如下 整數劃分問題是將乙個正整數n拆成一組數連加...
hrbeu 放蘋果 pku 1664 動態規劃
很典型的動態規劃題 很好的演算法 f m,n f m n,n f m,n 1 f m,n 把m個蘋果放到n個盤子中的方法數 f m,n 1 把m個蘋果放到n 1個盤子中的方法數 其中至少有乙個空盤子 f m n,n 把m個蘋果放到n個盤子中,而且每個盤子中都有蘋果 先拿n個出來,等m n個放好了,然...