poj1664 放蘋果 acm解題報告 遞推

2021-07-26 08:18:38 字數 885 閱讀 4529

放蘋果time limit:1000ms

memory limit:10000k

total submissions:31892

accepted:20055

description

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

input

第一行是測試資料的數目t(0 <= t <= 20)。以下每行均包含二個整數m和n,以空格分開。1<=m,n<=10。

output

對輸入的每組資料m和n,用一行輸出相應的k。

sample input

1

7 3

sample output

8

解題:

設f(m,n)代表m個蘋果放在n個盤子裡的方案數,

討論的遞推結果為:

m=1 或n=1,那麼無論只有乙個蘋果還是乙個盤子,都只有一種方案,即放在任意乙個盤子裡或所有蘋果放在唯一

乙個盤子裡。 f(m,n)=1

mn, 放滿時,可以等同為先從m中取n個,分別放入n個盤子裡一盤子乙個,然後m-n蘋果放入n個盤子,如果不放

滿,那麼至少剩乙個空盤,等同f(m,n-1)

∴ f(m,n)=f(m-n,n)+f(m,n-1)

*/#include

#include

using namespace std;

int solve(int m,int n)

return 0;

}

poj1664 放蘋果 解題報告

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

POJ 1664 放蘋果 解題報告

這是一道求總方案數的dp,唯一的不同就是2,5這種放法和5,2是一樣的,於是這道題就變成了把整數n分成非負整數m份,有多少種分法,寫轉移方程式的時候要仔細思考思考。用s i j 表示用i個盤子放j個蘋果的不重複的總方案數。處理邊界 s 1 k 1 0 k m s 1 k 很顯然只有一種方法。s i ...

POJ1664放蘋果 解題報告

一道遞迴裸題。直接上 了 特別注意遞迴條件的判讀,一開始沒有考慮到盤子數為1的情況。只考慮蘋果為0了。include using namespace std int get res int m,int n if m n mreturn get res m,m else 如果水果多 get res m...