亂記結論之OI常用四大數列

2022-05-27 22:39:08 字數 1428 閱讀 3732

一、斐波那契數列

$f(0)=1,f(1)=1,f(i)=f(i-1)+f(i-2) \ \ \ \ (i>=2)$

經典的解釋是兔子生小孩,第0年一對兔子,一對兔子需要一年長大,後面每年都生小孩,每次剛好生一對,問第i年有多少只。就這麼算。

經典的應用是矩陣乘法!稍微寫一下:

\begin

1 & 1 \\

1 & 0

\end * \begin

f(i) \\

f(i-1)

\end = \begin

f(i+1)\\

f(i)

\end

二、卡特蘭數

$c(0)=c(1)=1,c(n)=\sum_^ c(k)c(n-k-1)$

$c(n)=c(2n,n)-c(2n,n-1)$

$c(n)=c(n-1)*(4*n-2)/(n+1)$

例子多了。出入棧序列,劃分三角形,走格仔不越過對角線,等等。

兩種理解方式:分治,分成兩個部分變成式一;計數,在瞎構造的序列中挑掉不合法的,對應方案是把第乙個遇到不合法的位置以前全部取反,後面不變,建立乙個和c(2n,n-1)的對應關係。

三、貝爾數

$b(n)=\sum_^ c(n-1,k)b(k)$

貝爾數是第二類斯特林數的一行的和,直接用上面方法可nlogn求乙個貝爾數。

如果要求一系列貝爾數,考慮最後乙個元素所在集合大小,有$f(i)=\sum_^ c_^f(i-k)$,一卷積,前面對後面有貢獻,可cdq+fft在$nlog^2n$時間求解。

貼圖都是不懂的。

三點五、範德蒙恒等式

$c_^k=\sum_^c_n^ic_m^$

證明用生成函式。

四、斯特林數

第二類:s(n,m)--n個元素分到m個相同盒子,$s(n,m)=s(n-1,m-1)+s(n-1,m)*m$

還可以這麼玩:不考慮是否空盒子,那答案就$\frac$,然後容斥一下,列舉幾個空盒子,$s(n,m)=\frac*\sum_^(-1)^ic_m^i(m-i)^n$,後面一卷積,可用多項式乘法得一行斯特林數。

他喜歡和指數玩:$i^j=\sum_^s(j,k)k!c_i^k$

第一類:s(n,m)--n個元素排成m個圈圈,$s(n,m)=s(n-1,m-1)+s(n-1,m)*(n-1)$,排在每個數的左邊。

五、默慈金數

$m(n)$--乙個圓上n個點,問點間連線不相交的方案。或者在座標軸上,一步之內可以往左往右或不動,問最後到原點的方案。

一、$m(n+1)=m(n)+\sum_^m(i)m(n-1-i)=\frac$

二、$m(n)=\sum_^ \right \rfloor}c_n^cat(i)$

(不是很懂這字咋變小了)

Linux常用技巧之四

41 刪除了 etc inittab 修復辦法如下!1 首先進去 linux 的rescue 的模式!2 然後使用如下的命令 rpm qf root mnt sysimage etc inittab 查出該檔案屬於哪個 rpm包!3 然後重新安裝這個 rpm包!rpm ivh force root ...

Vue系列 四 之常用指令v bind

自定義元件prop 為了避免篇幅過長,常用指令我可能會分幾個篇幅來介紹。v bind api 縮寫 v bind指令主要是繫結元素的屬性 比如的src,元素的class,style,id等 和自定義元件 後面會講到 的prop。來看幾個常見的使用場景 path div var vm newvue m...

四 docker系列之docker安裝常用軟體

目錄 docker安裝常用軟體 docker安裝執行redis 一 dockerhup redis倉庫 二 映象拉取 三 映象啟動 四 引數解析 docker安裝執行mysql 一 拉取映象 二 執行映象 docker部署執行單機kafka 拉取zookeeper並執行 拉取kafka映象並執行 命...