一、斐波那契數列
$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映象並執行 命...