min-max容斥-最值反演及其推广
设是一个集合,和分别表示集合中的最大值与最小值。
那么有如下式子成立:
因为证明很简单就写一下吧,以第一个式子为例,设,那么只有时的为(可能有多个相同的最大值,这时候随便钦点一个就可以了),对于除此之外的所有,肯定至少存在一个集合中的数使得,假设有个这样的,那么从中选奇数个和选偶数个的方案数是一样的,于是就被抵消了。
这个式子在期望下也是成立的,即:
用期望的线性性证明即可。
于是就可以用来做题了,一般的套路是每个位置有概率从变成,问都变成的期望步数,这就是,然后就反演成,至少一个数变成的期望就好做很多了。
:来填坑了...现在来介绍一下最值反演的推广:通过求来求第大()。前置知识是二项式反演,如果不知道请戳这里 (opens new window)。
我们来尝试构造一个函数,使得:
然后来考虑一下对于集合中第大的元素,如果等于这个元素,那么只有比它大的个元素是可能存在的,那么它的贡献就是:
也就是说需要满足:
等价于:
为了方便我们用替换,然后用表示,那么就得到:
看这个是不是一个经典的二项式反演的形式呀,所以二项式反演一下:
然后因为,所以上面的式子只有这一项是有贡献的,我们再把替换回去,得:
再把替换成,最终得到:
终于结束啦!
同时我们可以发现如果要求第大,那么只需要计算元素个数的子集就可以了。