初入演算法篇(遞迴) poj1664

2021-08-17 14:43:22 字數 969 閱讀 9858

放蘋果

time limit:1000ms

memory limit:10000k

total submissions:35996

accepted:22239

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
source

題目意思很簡單,思路實際上有點複雜

我們用n表示蘋果,m表示盤子

這題我是第二次做了,有了以前的記憶還不是太複雜,第一次是完全不會的。

這題可以用遞迴,我們要明確最少一定要放1個盤子,因此m=1一定是邊界。之後我們要分析過程,我們對於n個蘋果,放入m個盤子中,對於第m個盤子,我們有兩個選擇,要麼放,要麼不放。

那麼假如n當n=1時,上面說了對於每乙個留下來的盤子數m裡面的蘋果都是相等的,所以放哪乙個盤子都是一樣的(題目要求不排序)所有n=1也是邊界條件

當n=0時,沒有蘋果了,直接返回

遞迴題目的思路一定要清晰!!!

#include #include #include #include #include using namespace std;

int f(int n,int m)

if(nelse

}int main()

}

poj 1664 遞迴 思維

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

poj1664放蘋果 遞迴

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

poj 1664 放蘋果(遞迴)

題目 將m個蘋果放入n個籃子中,允許有籃子空著,請問一 共有幾種放法?注意 不能出現重複的放法 輸入 第一行輸入需要測試的次數t,0 t 20。第二行輸入蘋果的數量m和籃子的數量n,1 m,n 10。輸出 輸出一共有幾種放法。試例 input 1 7 3 output 8分析 首先,蘋果和籃子的關係...