牛客網 放蘋果 DFS

2021-10-05 17:53:31 字數 799 閱讀 5223

牛客網 放蘋果

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

每行均包含二個整數m和n,以空格分開。1<=m,n<=10。

對輸入的每組資料m和n,用一行輸出相應的k。

示例1複製

17 3複製8

這是一道模板題,將m個物體劃分為n個部分,要注意的是

邊界關係:m為0時只有一種劃分方法,n為0時只有一種劃分方法,通過dfs找到m為0或者n為0的情況,即遞迴邊界;

m和n之間大小關係,m大於n會產生什麼條件,m小於n會產生什麼條件:此題中m>n時,這時候考慮到底是每個盤子都放蘋果還是留至少乙個空盤子。若都放,則先每個盤子都預置乙個蘋果,還剩m-n個蘋果放到n個盤子,即f(m-n, n);若留空盤子,至少留乙個,則將m個蘋果放到n-1個盤子中,即f(m , n-1) 。故而f(m,n) = f(m-n, n) + f(m , n-1);此題目找那個m

#include

#include

#include

#include

#include

#include

using

namespace std;

int dp[20]

[20];

intdfs

(int m,

int n)

if(melse

}int

main()

return0;

}

放蘋果(牛客網)

題目鏈結 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1 是同一種分法。輸入每個用例包含二個整數m和n。0 m 10,1 n 10。樣例輸入7 3 樣例輸出8 把m個同樣的蘋果放在n個同樣的盤子裡,有兩種情況。1.至少有乙個空盤子...

牛客網 分蘋果

n 只奶牛坐在一排,每個奶牛擁有 a i 個蘋果,現在你要在它們之間轉移蘋果,使得最後所有奶牛擁有的蘋果數都相同,每一次,你只能從乙隻奶牛身上拿走恰好兩個蘋果到另乙個奶牛上,問最少需要移動多少次可以平分蘋果,如果方案不存在輸出 1。每個輸入包含乙個測試用例。每個測試用例的第一行包含乙個整數 n 1 ...

放蘋果 組合 DFS

把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1 是同一種分法。第一行是測試資料的數目t 0 t 20 以下每行均包含二個整數m和n,以空格分開。1 m,n 10。對輸入的每組資料m和n,用一行輸出相應的k。sample input...