HDU-6801 2020HDU多校第三场T11 (生成函数)
HDU-6801 2020HDU多校第三场T11 (生成函数)
题解又给式子不解释了。。
设未被选中的概率$q=1-p$
设$a_i$为$c$号点被选中前有$i$个点被选中的概率,它的普通生成函数为$A(x)$
考虑枚举$c$在第$i$次被访问到时被选中
则$c$前面的$c-1$个点在转的过程中被访问了$i$次,后面的$n-c$个点被访问了$i-1$次(可能在没有经过这么多次时就已经被删掉了,但是不影响概率的计算),因此可以简单考虑这两种点在$c$之前被选中的概率
得到一个$A(x)$的表示
$\begin{aligned} A(x)=\sum_{i=1}^{\infty}p\cdot q^{i-1}\cdot (q^i+(1-q^i)x)^{c-1}\cdot (q^{i-1}+(1-q^{i-1}x))^{n-c}\end{aligned}$也即题解中的式子
$\begin{aligned} A(x)=\sum_{i=0}^{\infty}p\cdot q^i\cdot (q^{i+1}+(1-q^{i+1})x)^{c-1}\cdot (q^i+(1-q^ix))^{n-c}\end{aligned}$然后是暴力展开
$\begin{aligned} A(x)=\sum_{i=0}^{\infty}p\cdot q^i\cdot (q^{i+1}(1-x)+x)^{c-1}\cdot (q^i(1-x)+x)^{n-c}\end{aligned}$ $\begin{aligned} A(x)=\sum_{i=0}^{\infty}p\cdot q^i\cdot (\sum_{j=0}^{c-1}C(c-1,j)\cdot q^{(i+1)j}(1-x)^jx^{c-1-j})\cdot (\sum_{k=0}^{n-c}C(n-c,k)\cdot q^{ik}(1-x)^kx^{n-c-k})\end{aligned}$ $\begin{aligned} A(x)=\sum_{i=0}^{\infty}p\cdot q^i\cdot \sum_{j=0}^{c-1}\sum_{k=0}^{n-c} C(c-1,j)\cdot C(n-c,k)\cdot q^{(i+1)j+ik}(1-x)^{j+k}x^{n-j-k-1}\end{aligned}$这个式子极其反人类,把$i$换到右边化掉
$\begin{aligned} A(x)=\sum_{j=0}^{c-1}\sum_{k=0}^{n-c} C(c-1,j)\cdot C(n-c,k)\cdot (1-x)^{j+k}x^{n-j-k-1}\cdot \sum_{i=0}^{\infty}p\cdot q^i q^{(i+1)j+ik}\end{aligned}$右边是一个收敛的无穷等比数列
$\begin{aligned} A(x)=\sum_{j=0}^{c-1}\sum_{k=0}^{n-c} C(c-1,j)\cdot C(n-c,k)\cdot (1-x)^{j+k}x^{n-j-k-1}\cdot \frac{pq^j} {1-q^{j+k+1} }\end{aligned}$ $\begin{aligned} A(x)=\sum_{j=0}^{c-1}\sum_{k=0}^{n-c} C(c-1,j)\cdot C(n-c,k)\cdot x^{n-j-k-1}\frac{pq^j} {1-q^{j+k+1} }\cdot (\sum_{i=0}^{j+k} C(j+k,i) \cdot (-x)^i)\end{aligned}$虽然有三个循环,但是很显然可以先对于$j,k$进行一次卷积,然后再对于$j+k,-i$进行一次卷积得到
Code:
1 |
|
实际跑两次卷积,写得丑几乎就是顶着时限过去的。。