拉格朗日反演及擴展拉格朗日反演
如果有 \(F(G(x))=x\),即 \(F,G\) 互為復合逆,同時一定有 \(G(F(x))=x\),可以稱 \(G(x)=F^{-1}(x),F(x)=G^{-1}(x)\)。
在這種情況下,有這樣的式子:
拉格朗日反演
擴展拉格朗日反演
大朋友和多叉樹
設 \(F(x)\) 為答案的普通生成函數,那么有
這樣的話就構造出了 \(G(x)=F^{-1}(x)=x-\sum \limits_{i=0}^{\infty}[i \in D]x^i\)。
對 \(G\) 進行拉格朗日反演即可求出 \(F\)。
注意要求的是 \((\frac{x}{G(x)})^n\),然而 \(G(x)\) 常數項一定為 \(0\)。
解決方法很簡單,把式子化成 \((\cfrac{1}{\frac{G(x)}{x}})^n\) 即可。
邊雙圖計數
首先一般圖的指數生成函數為 \(H(x)=\sum \limits_{i=0}^\infty 2^{\binom{i}{2}}\frac{x^i}{i!}\)。
可以求出一般連通圖的指數生成函數 \(P(x)\),\(e^{P(x)}=H(x),P(x)=\ln H(x)\)。
給 \(P(x)\) 的第 \(i\) 項系數乘上 \(i\),即可得到有根一般連通圖的指數生成函數 \(D(x)\)。
設有根邊雙圖的生成函數為 \(B(x)\),考慮枚舉一般圖中根所在的邊雙大小,接着把有根連通圖掛在邊雙上的點上,那么有:
令 \(C(x)=xe^{D(x)}\),可得 \(D(x)=B(C(x))\)。
對 \(C(x)\) 取復合逆,可得 \(B(x)=D(C^{-1}(x))\)。
然后直接擴展拉格朗日反演沖上去:
點雙圖計數
同上題可以求出 \(D(x)\)。
設無根點雙圖的生成函數為 \(B(x)\),考慮一般圖中根所在若干個無關的點雙,可以直接 \(\exp\) 起來,所以只需要考慮每個點雙的生成函數。
對於每個點雙,只要枚舉大小然后在點雙的每個點上掛一個有根連通圖即可。
所以每個點雙大概是這樣的 \(\sum \limits_{i=1}^{\infty}b_{i+1}\frac{D^i(x)}{i!}\)。
可以給 \(B\) 左移一位,使書寫方便一些,有 \(D(x)=xe^{B(D(x))}\)。
這里用的點雙生成函數是無根的,大概是因為這樣就可以直接欽定編號最小的點是根節點,不去給根節點分配編號同時還保證用到的方案數是正確的。
對式子同取 \(\ln\),可得 \(\ln \frac{D(x)}{x}=B(D(x))\)。
用 \(D^{-1}(x)\) 替換掉 \(x\),可得 \(\ln \frac{x}{D^{-1}(x)}=B(x)\)。
構造 \(H(x)\) 為 \(\ln \frac{D(x)}{x}\) 即可發現要求的就是 \(B(x)=H(D^{-1}(x))\)。
仍然是套一個擴展拉格朗日反演即可解決。