zoukankan      html  css  js  c++  java
  • Min-Max 容斥

    Min-Max 容斥

    [made by Ameiyo ]


    前言

    这个东西给我的感觉有点类似 绝对值恒等式

    [max{a, b} = frac {|a + b| + |a - b|} {2}, min{a, b} = frac {|a + b| - |a - b|} {2} ]

    为什么这么说呢?因为二者都是让不该做贡献的数的系数和为 $ 0 $ ,当然 Min-Max 荣斥 并没有绝对值。


    前置知识

    先给出式子,这里用到一个东西叫 二项式反演 ,也不是很难的东西。

    [f(n) = sum C_n^i g(i) Leftrightarrow g(n) = sum (-1) ^ {n - i} C_n^i f(i) ]


    Min-Max 容斥

    然后,以下用 Min(S) 表示集合 $ S $ 中最小的数, Max(S) 同理。

    则有

    [Max(S) = sum _{varnothing eq T subseteq S} (-1) ^ {|T| - 1} Min(T) ]

    MinMax 交换也同样满足。


    证明

    这其实是一个可以用容斥讲明的问题,这里从代数方面证明。

    假设容斥系数为 $ d(x) $ 。

    考虑某个第 $ k $ 大的数,当其做贡献时,比他小的数肯定不能出现在集合中,假设其选择了 $ i $ 个比他大的数。

    那么他的系数和 $$ w_k = sum {i=0} ^{n-k} C{n - k}^i d(i + 1) $$ 。

    而当 $ n = k $ 时, $ w_k = 1 $ ;否则, $ w_k = 0 $ 。即 $$ [n - k == 0] = sum {i = 0} ^{n - k} C{n - k} ^i d(i + 1) $$ 。

    把上式二项式反演一下( $ f(n - k) = [n - k == 0] $ , $ g(i) = d(i + 1) $ ) ,就得到

    [d(n - k + 1) = sum _{i = 0} ^{n-k} (-1) ^{n - k - i} C_{n - k}^{i} [i == 0] = (-1) ^ {n - k} ]

    所以 $ d(i) = (-1) ^{i - 1} $ 。

    证毕。


    推广

    似乎是根据期望的线性性质,所以 Min-Max 容斥 在期望条件下也成立,即

    [Emax(S) = sum (-1) ^{|T| - 1} Emin(T) ]

    交换后同理。


    [in 2019.12.8 ]

  • 相关阅读:
    .net Remoting学习笔记(一) 中庸
    培训是一种乐趣(2)
    ExtJS实战(10)项目总结
    ExtJS实战(4)struts
    ExtJS实战(7)登陆
    ExtJS实战(5)dwr
    让老师崩溃的回答-程序员的经典笑话
    ExtJS实战(9)疑难杂症分析
    ExtJS实战(6)extjs+json
    ExtJS实战(8)CRUD+分页+复杂查询+排序
  • 原文地址:https://www.cnblogs.com/Ameiyo/p/12005844.html
Copyright © 2011-2022 走看看