學習筆記 遞推問題選講

2022-09-04 21:36:23 字數 1747 閱讀 4308

要將a上所有圓盤移到c,並且過程中不能出現大的圓盤在小的圓盤上面的情況.

把除了最大的之外的圓盤從a移到b.f[n-1]

把最大的從a移到c.1

把除了最大的之外的圓盤從b移到c.f[n-1]

通式:\(f[n]=f[n-1]\times2+1\)

求用對角線將n邊形劃分成(n-2)個三角形的不同的方案數.

通式:\(f[n]=\sum_^f[i]\times f[n-i+1]\).

n個不同的球,放入m個無區別的盒子,不允許盒子為空。

第n個球單獨放乙個盒子,共有m個盒子f(n-1,m-1)

第n個球和其他球放一起,共有m個盒子f(n-1,m)×m

通式:\(s(n,m)=s(n-1,m-1)+s(n-1,m)\times m\)

n個不同的球,放入m個有區別的盒子,不允許盒子為空。

此時箱子順序便與方案數有關,\(f(n,m)=p_m^m\times s(n,m)\)

\(\\\)

n個不同的球,放入m個無區別的盒子,允許盒子為空。

列舉非空盒子數,\(f(n,m)=\sum_^m s(n,m)\)

\(\\\)

n個不同的球,放入m個有區別的盒子,允許盒子為空。

結合上面兩種情況,\(f(n,m)=\sum_^m p_m^i\times s(n,m)\)

\(\\\)

n個相同的球,放入m個有區別的盒子,不允許盒子為空。

隔板法:m個盒子=(m-1)塊版,n個球且盒子不為空=(n-1)個槽,每個槽最多放一塊板,所以方案數為 \(c_^\).

\(\\\)

n個相同的球,放入m個有區別的盒子,允許盒子為空。

可以假設m個盒子中原來各有乙個球,現在需要再放入n個球,問題就轉化成了上一種情況:m個盒子=(m-1)塊版,(n+m)個球且盒子不為空=(n+m-1)個槽,每個槽最多放一塊板,所以方案數為 \(c_^\).

\(\\\)

n個相同的球,放入m個無區別的盒子,允許盒子為空。

\(f[i][j]\)表示n個球,m個盒子的方案數.

因為盒子相同,為避免計重,給每個盒子編號,假設每個盒子裡的小球數不上公升.

所以可將加球操作分為兩種:

即 \(f[n][m]=\beginf[n][m-1]+f[n-m][m]&n\geq m\\f[n][m-1]&n

\(\\\)

n個相同的球,放入m個無區別的盒子,不允許盒子為空。

假設每個盒子裡的小球數不上公升.

因為不允許盒子為空,所以可往每個盒子中先放入乙個球,問題就轉化成了上一種情況:(n-m)個相同的球,放入m個無區別的盒子,允許盒子為空.

2017-06-28 21:22:55

遞推問題合集

首先講一道小時候的遞推問題,如上所示,這裡,凡是問到第n次的時候,有幾種方式或者需要走幾步,就應該想到遞推地方法了。首先求出f 1 1,f 2 2。這時候想求f 3 這時候想,第一步可以走一步,或者兩步,如果走一步的話,還有兩步可以走,那麼恰好就是f 2 種情況。如果走兩步的話,還剩一步,那麼恰好就...

數塔問題 動態規劃問題 遞推問題

圖是乙個數塔,要求找出一條路徑,使路徑上的陣列和最大 第一行是乙個整數n,表示數塔的高度,接下來用n行數字表示數塔,其中第i行有i個整數,且所有的整數均在區間 0,99 內 output 輸出可能得到的最大和 sample input 57 3 88 1 0 2 7 4 4 4 5 2 6 5 sa...

遞推問題之馬踏過河卒問題

problem 棋盤上a點有乙個過河卒,需要走到目標b點。卒行走的規則 可以向下 或者向右。同時在棋盤上c點有乙個對方的馬,該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。因此稱之為 馬攔過河卒 棋盤用座標表示,a點 0,0 b點 n,m n,m為不超過15的整數 同樣馬的位置座標是需要給出的...