zoukankan      html  css  js  c++  java
  • 【题解】[USACO19DEC]Tree Depth

    题目链接

    明摆着是一道计数题,计数题能用些啥?dp?我不会拦你的。多项式?生成函数?没错,这道题就是生成函数。

    难发现,深度=祖先数+1,而$i$是$j$的祖先,当且仅当对任意在$i$和$j$之间的整数$k$,均满足$a_i<a_k$。

    设$f_{|i-j|,k}$表示$i$是$j$的祖先时,逆序对数为$k$的方案数,则其生成函数

    [ LARGE F_{|i-j|}(x)=egin{cases}prod_{t=0,t eq j-i}^{n-1}sum_{p=0}^tx^p(i<j)\x^{i-j}prod_{t=0,t eq i-j}^{n-1}sum_{p=0}^tx^p(i>j)end{cases} ]

    方法:考虑先往序列里面插入所有下标在$i$到$j$之间的数(不含$i$),共$|i-j|$个数,再插入$a_i$,再插入剩下的数。

    然后,

    [ LARGE F_{|i-j|}(x)=egin{cases}frac{prod_{t=1}^nfrac{1-x^t}{1-x}}{frac{1-x^{j-i}}{1-x}}(i<j)\x^{i-j}frac{prod_{t=1}^nfrac{1-x^t}{1-x}}{frac{1-x^{i-j}}{1-x}}(i>j)end{cases} ]

    先求出$prod_nfrac{1-xt}{1-x}$,再乘或除$1-x^p$就可以得到$F_p(x)$,取第$k$项和第$k-p$项系数。

    注意:用$ ext(会)color{ ext}$,可以暴力乘或除。

  • 相关阅读:
    Manacher-模版题poj3974 hdu3068
    拓展kmp(带注释版)
    颓の第17周
    php 递归遍历目录带缩进
    php 递归遍历目录
    php session
    apache主机配置
    php环境配置的检测方法
    php 变量
    php MVC
  • 原文地址:https://www.cnblogs.com/ztc03/p/12364449.html
Copyright © 2011-2022 走看看