2024.9.30 闲话

歌:でいどりーむ - 豆カカオ feat. 初音ミク .

以前模拟赛有个遗留问题,就是那个随机父节点树结点 \(x\) 子树大小为 \(i\) 的方案数怎么算的 . 首先有朴素 DP:

\[dp_{i,j}=\begin{cases}(x-1)!&i=j=0\\(i+x-2)\cdot dp_{i-1,j}&j=0\\(i+x-j-2)\cdot dp_{i-1,j}+j\cdot dp_{i-1,j-1}&\text{otherwise.}\end{cases} \]

然后答案就是 \(dp_{n-x,i-1}\) .

经过一些抽象可以考虑对于常数 \(k\) 解决这样一个递推:

\[a_{i,j}=\begin{cases}1&i=j=0\\(i+k)\cdot a_{i-1,j}&j=0\\(i-j+k)\cdot a_{i-1,j}+j\cdot a_{i-1,j-1}&\text{otherwise.}\end{cases} \]

这个递推想用生成函数可能比较困难 . 看成一个格路计数的问题,从 \((n,m)\) 走到 \((0,0)\),每次可以走以下两种步:

  • \((i,j)\to(i-1,j)\):权值为 \(i-j+k\) .
  • \((i,j)\to(i-1,j-1)\):权值为 \(j\) .

一种走法的权值是每步的权值之积,求所有走法的权值和 .

注意到走第二种步实际上是不影响 \(i-j\) 的,所以两部分的贡献独立,可以直接导出答案:

\[a_{n,m}=m!(n-m+k)^{\underline{n-m}}\dbinom nm=m!\cdot\dfrac{(n-m+k)!}{k!}\cdot\dfrac{n!}{m!(n-m)!}=n!\dbinom{n-m+k}{k} \]

把结果代回到原式中即可得到最终答案,这里放一下具体式子:\((n-x)!(x-1)!\dbinom{n-i-1}{x-2}\) .

posted @ 2024-09-30 14:47  Jijidawang  阅读(182)  评论(10编辑  收藏  举报
😅​