zoukankan      html  css  js  c++  java
  • bzoj 3456 城市规划 无向简单连通图个数 多项式求逆

    题目大意

    求n个点的无向简单连通图个数

    做法1

    (f[i])表示i个点的无向简单连通图个数
    (g[i]=2^{frac {i*(i-1)}{2}})表示i个点的无向简单图个数(不要求连通)
    f[i]就是g[i]减去不连通的情况数
    我们枚举(1)所在连通块大小(j)
    则有

    [egin{aligned} f[i]&=g[i]-sum_{j=1}^{i-1}inom {i-1}{j-1}f[j]*g[i-j]\ g[i]-f[i]&=sum_{j=1}^{i-1}frac{(i-1)!}{(j-1)!(i-j)!}f[j]*g[i-j]\ frac {g[i]}{(i-1)!}-frac {f[i]}{(i-1)!}&=sum_{j=1}^{i-1}frac{f[j]}{(j-1)!}*frac {g[i-j]}{(i-j)!}\ frac {g[i]}{(i-1)!}&=sum_{j=1}^{i}frac{f[j]}{(j-1)!}*frac {g[i-j]}{(i-j)!}\ A&=B*C\ B&=A*C^{-1} end{aligned} ]

    好了显然了
    弄成生成函数求个逆就好了

    做法2

    [egin{aligned} frac {g[i]}{(i-1)!}&=sum_{j=1}^{i}frac{f[j]}{(j-1)!}*frac {g[i-j]}{(i-j)!}\ 提出frac {f[i]}{(i-1)!}\ frac {f[i]}{(i-1)!}&=frac {g[i]}{(i-1)!}-sum_{j=1}^{i-1}frac{f[j]}{(j-1)!}*frac {g[i-j]}{(i-j)!}\ end{aligned} ]

    分治+FFT

    做法3

    多项式求ln

    solution

    没时间了先不写了 挖坑

  • 相关阅读:
    macOS 修改键盘重复按键延迟
    stdout 与 stderr 区别
    E. 1-Trees and Queries
    Codeforces Round #615 (Div. 3)
    Codeforces Round 613(div 2)
    Codeforces Edu80
    SPOJ
    快读
    《货车运输》题解--最大生成树&倍增
    倍增思想求lca
  • 原文地址:https://www.cnblogs.com/acha/p/6478305.html
Copyright © 2011-2022 走看看