問題描述:
把 m 個同樣的蘋果放在 n 個同樣的盤子裡,允許有的盤子空著不放,共有多少種不同的分法?(用 k 表示)5,1,1 和 1,5,1 是同一種分法。
時間限制:1000ms
記憶體限制:65536k
輸入格式:
第一行是測試資料的數目 t(0≤t≤20)。
以下每行均包含兩個整數m 和 n,以空格分開。1≤m,n≤10。
輸出格式:
對輸入的每組資料 m 和 n,用一行輸出相應的 k。
樣例輸入:
1樣例輸出: 解題思路:7 3
對於蘋果分配,m個蘋果,要麼n個盤子全用,這種情況下每個盤子拿出乙個蘋果不影響分配結果,要麼至少有乙個空盤子剩餘。所以對於排序,可能會出現兩種情況,前面那種是divide(m - n , n),後面情況是divide(m, n - 1)。所以遞迴式就是divide(m - n , n) + divide(m, n - 1)。
當n > m時,盤子多餘蘋果,肯定至少有n- m個盤子空著,而盤子都是一樣的,就不用管這些盤子了,所以就變成了divide(m, m)。
當m為0或者n為1時,只有一種情況,返回1,這是遞迴邊界。
**:
#include
intdivide
(int m,
int n)
intmain()
return0;
}
問題 分蘋果
題目描述 給定一堆共n個蘋果,兩個人輪流進行如下操作 1,將這一堆蘋果分成兩堆,每堆的蘋果數目必須不同 2,另乙個人選擇其中一堆作為新的堆,開始下一輪操作。直到某個人不能滿足要求輸掉比賽,遊戲結束。假設兩個人都足夠聰明 總會選擇對自己最優的方案。比如說有3個蘋果,第乙個人只能選擇分兩堆1 2,第二個...
遞迴分蘋果組合數論
問題 將m個相同的蘋果放入n個相同的盤子 一共有多少種放法?注和是相同的一種。分析 所有不同的擺放方法可以分為兩類 至少有乙個盤子為空和所有盤子都不空。對於至少空著乙個盤子的情況,則n 個盤子擺放m 個蘋果的擺放方法數目與況,則n 個盤子擺放m 個蘋果的擺放方法數目等於n 個盤子擺放m n 個蘋果的...
問題 分蘋果 博弈
時間限制 1 sec 記憶體限制 128 mb 給定一堆共n個蘋果,兩個人輪流進行如下操作 1,將這一堆蘋果分成兩堆,每堆的蘋果數目必須不同 2,另乙個人選擇其中一堆作為新的堆,開始下一輪操作。直到某個人不能滿足要求輸掉比賽,遊戲結束。假設兩個人都足夠聰明 總會選擇對自己最優的方案。比如說有3個蘋果...