洛谷 P1025 數的劃分

2022-03-19 07:45:34 字數 625 閱讀 7057

思路:遞迴

這道題有點像放蘋果:

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

轉化一下就有:

把n個蘋果放在k個盤子裡,每個盤子都不空.

那麼這樣就好理解,可以先把每乙個盤子都放上蘋果,注意是每乙個盤子,所以開始遞迴時從(n - k)開始,盤子數還是k;

接下來就是遞迴裡面了

1.如果蘋果為0,那麼就返回1,就算上一次的方案完成,有了1個方案;

2.如果只有乙個盤子了,那麼肯定把剩下所有的都放進去,所有又1個方案;

3.如果沒盤子了那還放個** , 只能返回0;

4.如果蘋果還沒盤子多,其餘的盤子就可以直接砸了不放了,盤子遞迴蘋果 數就ok了;

5.如果以上都不滿足那麼就可以考慮兩種遞迴:

a.少乙個盤子,蘋果數不變

b.所有盤子都放乙個,盤子數不變,蘋果減少

獻上**

#include using namespace std;

int n , k;

int g(int x , int y)

int main()

洛谷 P1025 數的劃分

題目描述 將整數n分成k份,且每份不能為空,任意兩個方案不相同 不考慮順序 例如 n 7,k 3,下面三種分法被認為是相同的。1,1,5 1,5,1 5,1,1 問有多少種不同的分法。輸入輸出格式 輸入格式 n,k 6 n 200,2 k 6 輸出格式 乙個整數,即不同的分法。輸入輸出樣例 輸入樣例...

洛谷P1025 數的劃分

將整數n分成k份,且每份不能為空,任意兩個方案不相同 不考慮順序 例如 n 7,k 3,下面三種分法被認為是相同的。1,1,5 1,5,1 5,1,1 問有多少種不同的分法。輸入格式 n,k 6 輸出格式 乙個整數,即不同的分法。輸入樣例 1 7 3 輸出樣例 1 4 四種分法為 1,1,5 1,2...

洛谷P1025 數的劃分

將整數n分成k份,且每份不能為空,任意兩個方案不相同 不考慮順序 例如 n 7,k 3,下面三種分法被認為是相同的。1,1,5 1,5,1 5,1,1 問有多少種不同的分法。輸入格式 n,k 6 輸出格式 乙個整數,即不同的分法。輸入樣例 1 複製7 3 輸出樣例 1 複製4 四種分法為 1,1,5...