zoukankan      html  css  js  c++  java
  • 1

    假设最后以 $i$ 为根的树大小为 $a_i$,第 $i$ 个加入的点,加入的树是第 $b_i$ 棵。

    首先考虑给定一个 ${b_n}$,求这个序列出现的概率。
    则概率为 $prod_{i=1}^d frac{sum_{j=1}^i[b_i=b_j]}{n+i-1}$。
    考虑枚举每一种 $b_i$,则答案为 $frac{(n-1)!}{(n+d-1)!}prod_{i=1}^dprod_{j=1}^{cnt_i}j=frac{(n-1)!}{(n+d-1)!}prod_{i=1}^ncnt_i!$,其中 $cnt_i$ 为 $i$ 在 ${b_n}$ 中的出现次数。

    考虑给定一个 ${a_n}$,求这个最终序列的出现概率为 $frac{d!}{prod (a_i-1)!} imesfrac{(n-1)!}{(n+d-1)!} imesprod (a_i-1)!=frac{1}{inom{n+d-1}{n-1}}$。即对于每一种 ${a_n}$ 出现概率均相同。

    则答案等于 $frac{sum_{sum a_i=n+d}{sum_{i=1}^rkth_i{a_n}}}{inom{n+d-1}{n-1}}$。

    $$sum_{{a_n}}sum_{i=1}^rkth_i{a_n}$$
    $$=sum_{{a_n}}sum_{i=1}^rsum_{j=0}^d[sum[a_x>j]geq i]$$
    $$=sum_{i=0}^dsum_{j=1}^nmin(j,r) imessum_{{a_n}}[sum[a_x>i]=j]$$

    设 $f_{i,j}=sum_{{a_n}}[sum[a_x>i]=j]$,$g_{i,j}$ 表示钦定 $j$ 个位置的 $a_x>i$ 的方案数。
    则有
    $$g_{i,j}=inom njinom {n+d-1-i*j}{n-1}$$
    $$g_{i,j}=sum_{k=j}^ninom kjf_{i,k}$$
    二项式反演,得
    $$f_{i,j}=sum_{k=j}^ninom kj(-1)^{k-j}g_{i,k}$$
    $$=sum_{k=j}^ninom kj(-1)^{k-j}inom nkinom{n+d-1-i*k}{n-1}$$
    代入原式,得
    $$sum_{{a_n}}sum_{i=1}^rkth_i{a_n}$$
    $$=sum_{i=0}^dsum_{j=1}^nmin(j,r)sum_{k=j}^ninom kj(-1)^{k-j}inom nkinom{n+d-1-i*k}{n-1}$$
    $$=sum_{k=1}^ninom nk(-1)^kleft(sum_{j=1}^kinom kj(-1)^jmin(j,r) ight)left(sum_{i=0}^dinom{n+d-1-i*k}{n-1} ight)$$
    考虑两部分分别计算
    第二部分可以处理出所有 $inom{n+d-1-x}{n-1}(xleq d)$,然后使用高维前缀和计算 $O(nloglog n)$ 即可。

    $$sum_{j=1}^kinom kj(-1)^jmin(j,r)$$

    令 $r'=min(r,k)$

    $$=sum_{j=0}^{r'}inom kj(-1)^jj+r'sum_{j=r'+1}^{k}inom kj(-1)^j$$

    $$=-ksum_{j=1}^{r'}inom {j-k-1}{j-1}+r'sum_{j=r'+1}^{k}inom kj(-1)^j$$

    $$=-ksum_{j=0}^{r'-1}inom{j-k}{j}+r'left(sum_{j=0}^kinom kj(-1)^j-sum_{j=0}^{r'}inom kj(-1)^j ight)$$

    $$=-kinom{r'-k}{r'-1}-r'sum_{j=0}^{r'}inom{j-k-1}{j}$$

    $$=-kinom{r'-k}{r'-1}-r'inom{r'-k}{r'}$$

    $$=(-1)^{r'}kinom{k-2}{r'-1}-(-1)^{r'}r'inom{k-1}{r'}$$

    $$=(-1)^{r'}kinom{k-2}{r'-1}-(-1)^{r'}(k-1)inom{k-2}{r'-1}$$

    $$=(-1)^{r'}inom{k-2}{r'-1}$$

    单个 $O(1)$ 计算即可

  • 相关阅读:
    结对-结对编程项目作业名称-结对项目总结
    课后作业 -团队项目编程进度
    团队-象棋游戏-模块开发过程
    团队-象棋游戏-模块测试过程
    结队-结队编程项目作业名称-项目进度
    课后作业-阅读任务-阅读笔记-3
    团队-象棋游戏-需求分析
    团队-象棋游戏-成员简介及分工
    课后作业 -团队项目编程进度
    团队编程 象棋游戏 开发文档
  • 原文地址:https://www.cnblogs.com/GreenDuck/p/13877713.html
Copyright © 2011-2022 走看看