牛客網 放蘋果
把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...