組合數學八題

2021-07-03 10:00:59 字數 1872 閱讀 1521

(題目來自朱全民老師ppt)

題目如下(樣例: n=3 m=2)

a 給定n個不同的球,放進m個不同的盒子,盒子允許為空,有多少種方案? 樣例輸出:8

b 給定n個不同的球,放進m個不同的盒子,盒子不允許為空,有多少種方案? 樣例輸出:6

c 給定n個不同的球,放進m個相同的盒子,盒子允許為空,有多少種方案? 樣例輸出:4

d 給定n個不同的球,放進m個相同的盒子,盒子不允許為空,有多少種方案? 樣例輸出:3

e 給定n個相同的球,放進m個不同的盒子,盒子允許為空,有多少種方案? 樣例輸出:4

f 給定n個相同的球,放進m個不同的盒子,盒子不允許為空,有多少種方案? 樣例輸出:2

g 給定n個相同的球,放進m個相同的盒子,盒子允許為空,有多少種方案? 樣例輸出:2

h 給定n個相同的球,放進m個相同的盒子,盒子不允許為空,有多少種方案? 樣例輸出:1

因為題目順序有點畸形,按照正常人的思維,如下做題順序較優:

a f e g h d c b

分別辨析。

a 給定n個不同的球,放進m個不同的盒子,盒子允許為空,有多少種方案?

[分析] 每個球都可以放在任意個盒子中。

[答案] m^n

f 給定n個相同的球,放進m個不同的盒子,盒子不允許為空,有多少種方案?

[分析] 題目轉化為,將n個球放在一排,在它們之間n-1個空隙選m-1個插棍子將小球分為m部分,將每部分放進盒中,問有幾種分法。

[答案]

e 給定n個相同的球,放進m個不同的盒子,盒子允許為空,有多少種方案?

[分析] 與上題類似,但有盒子可以為空,這就意味著兩根棍子可以在同一縫隙。將問題轉化,先在每個盒子放乙個球再來放剩下n個球,與上題類似,將n+m個球放在一排,在它們之間n-+m-1個空隙選m-1個插棍子將小球分為m部分。這樣使得棍子不重合。

[答案]

g 給定n個相同的球,放進m個相同的盒子,盒子允許為空,有多少種方案?

[分析] 設答案為f[n][m],數值等於有空盒子的情況(f[n][m-1],n個球放在m-1個盒子裡)加上沒空盒子的情況(f[m-n][m],每個盒子放乙個球,剩下m-n個球隨便放)。

[遞推式] f[n][m]=f[n][m-1]+f[m-n][m]

[邊界條件] f[i][j]=1 (i=0 || m=1) , f[i][j]=f[i][i] (j>i)

h 給定n個相同的球,放進m個相同的盒子,盒子不允許為空,有多少種方案?

[分析] 先每個盒放乙個球,再如g.

[答案] 0(m>n),f[n-m][m] (n>=m,f同g中的f)

d 給定n個不同的球,放進m個相同的盒子,盒子不允許為空,有多少種方案?

[分析] 設答案為f[n][m],答案為1*f[n-1][m-1] (第n個球放在第m個盒子,其餘的放在其餘的格仔)+m*f[n-1][m] (第n個球任意放,乘上n-1個球放在m個盒子中的方案數),這樣能保證一定沒有空盒子。

[遞推式] f[n][m]=f[n-1][m-1]+m*f[n-1][m]

[邊界條件] f[i][j]=1(i=j || j=1), 0(j>i)

c 給定n個不同的球,放進m個相同的盒子,盒子允許為空,有多少種方案?

[分析] 與d有聯絡,為n個盒子放在1~m個盒子的方案數的總和

[答案]

b 給定n個不同的球,放進m個不同的盒子,盒子不允許為空,有多少種方案?

[分析] 與d有聯絡,為n個盒子放在1~m個盒子的方案數的總和成上m個盒子的排列總數

[答案]

–by foggy

2015.6.21組合數學經典八題

組合數學 求組合數

對於求組合數,要根據所給資料範圍來選擇合適的演算法 這道題中所給的資料範圍適合用打表的方法直接暴力求解 先用4e6的複雜度預處理出所有的情況,再用1e4的複雜度完成詢問即可 include using namespace std const int n 2010 const int mod 1e9 ...

數學 組合數學

mod must be a prime const int mod 1e9 7 namespace combinatory ll inv ll x ll fac maxn invfac maxn void initc int n ll a ll n,ll m ll c ll n,ll m ll d ...

組合數學之排列組合若干題

poj1833 題目連線 題意 中文題目題意不多說,只是用到了stl裡面的next permutation 函式 next permutation op1,op2 最後乙個排列時返回null include include include include include includeusing n...