把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?(用k表示)5,1,1和1,5,1 是同一種分法。
第一行是測試資料的數目t(0<=t<=20)。以下每行均包含二個整數m和n,以空格分開。1<=m,n<=10。
對輸入的每組資料m和n,用一行輸出相應的k。
33 2
4 32 724
2該題用遞迴的方式進行分析,又因為題目要求「5,1,1和1,5,1 是同一種分法」所以可以將蘋果從小到大進行分配,即讓上乙個盤子中分配到的蘋果小於或等於此盤子中將要分得的蘋果數量。
for
(int i=i;i<=m;i++
)
#include
using
namespace std;
void
(int m,
int n,
int i)
;int number=0;
intmain
(void)*/
for(
int i=
0;i)for
(int i=
0;i)return0;
}void
(int m,
int n,
int i)
else
if(n<
0||m<0)
for(
int i=i;i<=m;i++
)}
資訊學奧賽一本通 1192 放蘋果(遞推)
主要是要找規律,可以在草稿本上自己找一下規律。假設當前蘋果數為i,盤子數為j,用a i j 表示i個蘋果放到j個盤子中。1 如果蘋果數為0或者1,那麼方法就是1 如果盤子數為0或者1,方法也是1 2 如果蘋果數大於等於盤子數,那麼方法為 蘋果數為i,盤子數為j 1時的方法 蘋果數為i j,盤子數為j...
資訊學奧賽一本通 小球(drop)
許多的小球乙個乙個的從一棵滿二叉樹上掉下來組成fbt full binary tree,滿二叉樹 每一時間,乙個正在下降的球第乙個訪問的是非葉子節點。然後繼續下降時,或者走右子樹,或者走左子樹,直到訪問到葉子節點。決定球運動方向的是每個節點的布林值。最初,所有的節點都是false,當訪問到乙個節點時...
資訊學奧賽一本通 小球(drop)
this drop is gonna last forever!許多的小球乙個乙個的從一棵滿二叉樹上掉下來組成fbt full binary tree,滿二叉樹 每一時間,乙個正在下降的球第乙個訪問的是非葉子節點。然後繼續下降時,或者走右子樹,或者走左子樹,直到訪問到葉子節點。決定球運動方向的是每個...