zoukankan      html  css  js  c++  java
  • 最值反演学习笔记

    最值反演学习笔记

    我学习的大佬Blog

    考虑通过用一个集合的(min)(max)(或反过来)

    我们构造一个与集合元素个数有关的函数(f(|S|))

    (kthmax(S)=sumlimits_{Tsubseteq S}f(|T|)min(T))

    对于第(i+1)大的元素的贡献,仅当它是集合中最小的元素才会有贡献,我们枚举剩下的元素个数(j)

    所以它被计算了(sumlimits_{j=0}^iC_i^jf(j+1))次。

    我们构造的函数(f)要满足:

    (large sumlimits_{j=0}^iC_i^jf(j+1)=[i+1=k])

    (large g(i)=[i+1=k],h(i)=f(i+1))

    (large sumlimits_{j=0}^iC_j^i h(j)=g(i))

    二项式反演得到

    (large h(i)=sumlimits_{j=0}^i (-1)^{i-j}C_i^jg(j))

    仅当(j=k-1)(g(j))不为(0)

    (large herefore h(i)=(-1)^{i-k+1}C_{i}^{k-1})

    (Large herefore f(i)=(-1)^{i-k}C_{i-1}^{k-1})

    常用的当(k=1)(f(i)=(-1)^{i-1})就是普通的(min-max)容斥。

    例题

    (gcd-lcm)反演

    已知(g(S)=gcd(S)),求(f(S)=lcm(S))

    设有(n)个质因子,(p_i)表示第(i)个质因子,(k_{ij})表示集合中第(i)个元素的第(j)个质因子的指数。

    (large f(S)=prodlimits_{i=1}^n p_i^{maxlimits_{jsubseteq S}left{ k_{ij} ight}})

    (large g(S)=prodlimits_{i=1}^n p_i^{minlimits_{jsubseteq S}left{ k_{ij} ight}})

    (large{ herefore} Large f(S)=prodlimits_{i=1}^n p_i^{sumlimits_{Tsubseteq S} (-1)^{|T|-1}minlimits_{jsubseteq T}left{ k_{ij} ight}}=prodlimits_{Tsubseteq S}g(T)^{(-1)^{|T|-1}})

  • 相关阅读:
    python中xrange和range的异同
    Python:使用threading模块实现多线程编程
    python Queue模块
    Python中pass语句的作用
    Python的作用域
    eclipse颜色配置
    protobuf
    python调试总结
    chardet安装
    Windows下搭建PHP开发环境
  • 原文地址:https://www.cnblogs.com/LLCSBlog/p/11313982.html
Copyright © 2011-2022 走看看