放蘋果
time limit:1000ms
memory limit:10000k
total submissions:37515
accepted:23090
description
把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?(用k表示)5,1,1和1,5,1 是同一種分法。
input
第一行是測試資料的數目t(0 <= t <= 20)。以下每行均包含二個整數m和n,以空格分開。1<=m,n<=10。
output
對輸入的每組資料m和n,用一行輸出相應的k。
sample input
1sample output7 3
8思路:多校見過類似的題目,簡單母函式題目,不過比賽的時候,直接給出了解題分析:用的遞迴寫的,感覺不是太理解。
1 #include 2 #include 3 #include 4 #include5 #include 6 #include
7 #include 8 #include
9 #include 10 #include 11 #include 12 #include 13 #include 14
using
namespace
std;
15#define mem(a,b) memset((a),(b),sizeof(a))
16#define mp make_pair
17#define pb push_back
18#define fi first
19#define se second
20#define sz(x) (int)x.size()
21#define all(x) x.begin(),x.end()
22 typedef long
long
ll;23
const
int inf = 0x3f3f3f3f;24
const ll inf =0x3f3f3f3f3f3f3f3f;25
const
double pi = acos(-1.0
);26
const
double eps = 1e-5;27
const ll mod = 1e9+7;28
//head
2930
int fun(int m, int
n) 38
39int
_, n, m;
40int
main()
45 }
理解母函式就是一道裸題,寫出各個式子,然後計算,係數即為答案。
可以理解為拿幾個1,拿幾個5,這樣就避免了重複。
1 #include 2 #include 3 #include 4 #include5 #include 6 #include
7 #include 8 #include
9 #include 10 #include 11 #include 12 #include 13 #include 14
using
namespace
std;
15#define mem(a,b) memset((a),(b),sizeof(a))
16#define mp make_pair
17#define pb push_back
18#define fi first
19#define se second
20#define sz(x) (int)x.size()
21#define all(x) x.begin(),x.end()
22 typedef long
long
ll;23
const
int inf = 0x3f3f3f3f;24
const ll inf =0x3f3f3f3f3f3f3f3f;25
const
double pi = acos(-1.0
);26
const
double eps = 1e-5;27
const ll mod = 1e9+7;28
//head
29int c1[20], c2[20];//
c1存展開式的係數,c2計算時儲存
30int
_, m, n;
31int
main()
38for(int i = 2; i <= n; i++) 43}
44for(int i = 0; i <= m; i++) 48}
49 printf("
%d\n
", c1[m]);//
次數為m的係數即為答案50}
51 }
poj 1664 放蘋果(dfs dp 母函式)
題目 description 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1 是同一種分法。input 第一行是測試資料的數目t 0 t 20 以下每行均包含二個整數m和n,以空格分開。1 m,n 10。output 對輸入的每組...
poj1664放蘋果 遞迴
放蘋果time limit 1000ms memory limit 10000k total submissions 23149 accepted 14694 description 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1...
poj 1664 放蘋果 遞推
解題思路 我們不妨令f m,n 表示m個蘋果放到n個盤子裡有多少種放法,下面對不同的情況給予討論 1 當盤子數為1的時候,只有一種放法就是把所有蘋果放到乙個盤子裡。2 當蘋果數為0的時候,也只有一種放法。3 當m n時,也分兩種情況討論,一種是至少有乙個盤子裡不放蘋果,這樣子就相當於f m,n 1 ...