zoukankan      html  css  js  c++  java
  • 雅礼集训Day3 计数

    雅礼集训Day3 计数

    斯特林反演

    [f(n)=sum_{i=0}^{n}left{egin{array}{l} n \ i end{array} ight} g(i) Longleftrightarrow g(n)=sum_{i=0}^{n}(-1)^{n-i}left[egin{array}{l} n \ i end{array} ight] f(i) ]

    [f(x)=sum_{i=x}^{n}left{egin{array}{l}i \xend{array} ight} g(i) Longleftrightarrow g(x)=sum_{i=x}^{n}(-1)^{i-x}left[egin{array}{l}i \xend{array} ight] f(i) ]

    特殊情况:

    [f_1=sum_{i=1}^n(-1)^{i-1}(i-1)!g(i) ]

    bzoj 4671 异或图

    就是上面的式子,用线性基求一下g即可。

    n个点m条边带标号无向连通图个数

    容斥dp可以n^6,不细讲

    考虑一个选了 m 条边的方案,且形成 (k) 个连通块方案块的方案是 (F_{m, k})

    (m) 条边,划分出来 (j) 个块一定不两两相连, 块内任意连边,方案是 (G_{m, j})

    和上面一样,斯特林反演可以得到

    [F_{m, 1}=sum_{j geq 1}(j-1) !(-1)^{j-1} G_{m, j} ]

    (H_{i, j, m}) 表示 DP 了 (i) 个点, 分了 (j) 个块, 当前共有 (m) 个边可以用的方案数。
    则有:

    [G_{m, j}=sum_{k geq m} H_{n, j, k}left(egin{array}{l} k \ m end{array} ight) ]

    然后计算H的时候把j那一维省掉,每次插进一块带一个-1的系数,一个k个块的方案会算重((k-1)!)次。

    min_max 容斥

    [egin{array}{l} max (S)=sum_{T subseteq S}(-1)^{|T|+1} min (T) \ min (S)=sum_{T subseteq S}(-1)^{|T|+1} max (T) end{array} ]

    期望状态下也成立。

    k-th max

    [ ext{k-th max}(S)=sum_{Tin S}(-1)^{|T|-k}{{|T|-1}choose {k-1}} ext{min}(T) ]

    证明可以考虑第i大的数何时能在集合里取到min,显然是和i-1个比它大的在一起的时候,那么枚举比他大的个数带上容斥系数求和,显然只有当i=k的时候才能有1的贡献,那么二项式反演即可。

    [sum_{j=1}^n {i-1choose j}f_{j}=[i=k] ]

    后记

    杂题同样不写,考之前看一下。

  • 相关阅读:
    node.js的querystring模块
    jsonp的作用
    js开发性能(一)
    express创建第一个web应用
    安装express
    关于【歧视】的一点事
    在统计报表中用到的sql语法记录
    北京民航总医院杀医事件
    那些自杀的人似乎更有勇气
    河南人究竟偷了多少井盖?
  • 原文地址:https://www.cnblogs.com/lcyfrog/p/13129831.html
Copyright © 2011-2022 走看看