poj 1664 放蘋果(dfs dp 母函式)

2021-08-14 10:39:18 字數 513 閱讀 6303

題目:

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
dfs:每回遞迴判斷重複太傻了,可以有規律的找,每次讓後面的比前面的大即可。

//#include#includeusing namespace std;

int dfs(int m,int n,int pre)

return cnt;

}int main()

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

}cout<

poj1664放蘋果 遞迴

放蘋果time limit 1000ms memory limit 10000k total submissions 23149 accepted 14694 description 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1...

poj 1664 放蘋果 遞推

解題思路 我們不妨令f m,n 表示m個蘋果放到n個盤子裡有多少種放法,下面對不同的情況給予討論 1 當盤子數為1的時候,只有一種放法就是把所有蘋果放到乙個盤子裡。2 當蘋果數為0的時候,也只有一種放法。3 當m n時,也分兩種情況討論,一種是至少有乙個盤子裡不放蘋果,這樣子就相當於f m,n 1 ...

poj 1664 放蘋果 遞推

放蘋果time limit 1000ms memory limit 10000k total submissions 33295 accepted 20648 description 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1...