地鐵重組 dp

2022-09-01 10:09:11 字數 740 閱讀 9641

有nn

個數依次進入最多容納m

m的棧,求出棧的不同排列數。

如果沒有m

m就是卡特蘭數了。設f[

i][j

]f[i

][j]

表示已經有i

i個數字進入過棧,期中有j

j個還在棧裡的方案數。

下一步可以彈出棧頂或將下乙個數入棧。所以方程就是f[

i][j

]=f[

i][j

+1]+

f[i−

1][j

−1]f

[i][

j]=f

[i][

j+1]

+f[i

−1][

j−1]

最終答案就是f[n

][0]

f[n]

[0]了。

時間複雜度o(n

m)o(

nm)

#include

#include

using

namespace std;

const

int n=

2010

,mod=

4096

;int ans,n,m,f[n]

[n];

intmain()

printf

("%d"

,f[n][0

]);return0;

}

SSLOJ 1318 地鐵重組

傳送門 有兩個車站和乙個中轉站,求在經過一系列的玄妙操作後有幾種不同的出站順序 設f i,jf fi,j 為在第乙個車站中還有i ii節車廂,在中轉站還有j jj節車廂 對於f i,jf fi,j 則有兩種狀態可以轉移過來 1.fi j fi,j 1 1.f f 1.fi,j f i,j 1 2.f...

biubiubiu坐地鐵 期望dp

biubiubiu 每次出去玩都要去坐地鐵,biubiubiu 觀察到,當地鐵上人比較少的時候,大家都會選擇那些與其他人不相鄰的座位,現在地鐵上有 n 個座位排成一排,1 號座位與 2 號相鄰,n 號座位與 n 1 號相鄰,除了 1 號與 n 號座位,任意 i 號座位都與 i 1 和 i 1 號座位...

多重組合數 計數類DP

題目 有n種物品,第i種物品有p i 個,不同種類的物品可以相互區分,同種類的物品不能相互區分。從這些物品種取出m個,有多少種取法,答案對mod取模。思想 dp i j 表示前i種物品,一共拿了j個物品的方案數。為了得到dp i j 那麼可以從前i 1種物品取j k個,再從第i種物品取k個即可 下面...