1. 程式人生 > 其它 >LGP6694口胡

LGP6694口胡

第一眼似乎很困難,實際上非常簡單(

首先期望具有線性性,我們轉化為計算點對對答案的貢獻。

發現相對位置一樣的點對對答案的貢獻是一樣的。我們把相對位置一樣的點對鈴出來,乘了之後求和再計算貢獻。

把點對拎出來是一個卷積,很容易做掉。

貢獻考慮把兩半邊的方案數乘起來。

如果形如 \((y,y+i\bmod n)\) 的點對積之和為 \(g[i]\),有 \(i\) 個點的半圓劃分方案數為 \(f[i]\),那麼答案為:

\[\frac{\sum_{i=1}^ng[i](f[i]-1)(f[n-i]-1)}{n\sum_{i=1}^n(f[i]-1)(f[n-i]-1)} \]

其實可以看出來每個點對被計算了兩次,但是 \(2\)

\(2\) 抵消了。

\(g\) 很容易求得,考慮 \(f\)

容易發現,\(f\) 相當於計算序列上若干條線段互不“相交”的方案數。容易發現不“相交”只有兩種可能:包含或兩條線段中間夾著空格。

我們設線段之間只有包含關係,且序列長度為 \(i\) 的合法線段擺放方式為 \(h[i]\),那麼容易得到有:\(F(x)=\frac{1}{1-H(x)}\)。所以我們只需要考慮 \(H(x)\)

注意到這相當於在 \(n+1\) 個數中選取偶數個位置。

\(h[n]=\sum_{i=0}^{n+1}[2|i]\binom{n+1}{i}\)

使用 低配版單位根反演 高中數學知識我們可以得到:

\[h[n]=\frac{1}{2}\times(\sum_{i=0}^{n+1}\binom{n+1}{i}(-1)^i+\sum_{i=0}^{n+1}\binom{n+1}{i}) \]\[h[n]=\frac{2^{n+1}}{2}=2^n \]

得到:

\[H(x)=\sum_{i=1}2^ix^i=\frac{2x}{1-2x} \]\[F(x)=\frac{1}{1-\frac{2x}{1-2x}}=\frac{1}{\frac{1-4x}{1-2x}}=\frac{1-2x}{1-4x} \]

那麼:

\[[x^n]F(x)=[x^n]\frac{1}{1-4x}-2[x^{n-1}]\frac{1}{1-4x}=2\times 4^{n-1} \]