首页 > 其他分享 >组合数学——Min-Max容斥

组合数学——Min-Max容斥

时间:2024-04-07 15:24:05浏览次数:24  
标签:Min Max sum 容斥 子集 满足要求

Min-Max 容斥,即 $$\max(S)=\sum_{T\in S,T\neq\emptyset}(-1)^{|T|-1}\min(T)$$
接下来证明上面那个式子是对的。定义 \(S\) 中共有 \(N\) 个元素,由大到小分别为 \(s_1,s_2,\dots,s_N\),\(T_i\) 为所有 \(S\) 大小为 \(i\) 的子集。
所有元素都大于 \(s_i\) 且大小为 \(j\) 的子集有 \(\tbinom{i-1}{j}\) 个;则最小元素为 \(s_i\) 且大小为 \(j\) 的子集,即 \(s_i\) 并上任意一个所有元素都大于 \(s_i\) 且大小为 \(j-1\) 的子集,有 \(\tbinom{i-1}{j-1}\) 个。
那么,满足 \(\min(T)=s_i\) 的 \((-1)^{|T|-1}\) 之和为 \(\sum\limits_{j=1}^{i}(-1)^{j-1}\tbinom{i-1}{j-1}\),根据二项式定理,这个东西等于 \((1+(-1))^{i-1}\) 即 \(0^{i-1}\)。除了 \(s_1\) 即最大值,其他元素的系数都为 \(0\);而 \(0^0\) 无意义,根据组合数的定义, \(s_1\) 的系数为 \(1\)(这就相当于构造了一个“开关”,只有最大值才不会被抵消)。于是得证。

在组合计数中,Min-Max 容斥有时很有用。比如有 \(N\) 种球,每次会随机抽到 \(1\) 种,求每种球都至少抽到 \(A_i\) 个的期望次数,相当于求最晚满足要求的那种球满足要求的时间,这是没有上限的。但是如果使用 Min-Max 容斥,就可以转换为每个子集最早满足要求的那种球满足要求的时间,这个东西的上限是 \(\sum{(A_i-1)}+1\),可以简单改写式子,然后合并类似状态进行 DP。

标签:Min,Max,sum,容斥,子集,满足要求
From: https://www.cnblogs.com/umieR/p/18119116/Min-Max

相关文章

  • 使用miniforge平替anaconda,重建airflow服务
    背景因公司通知不能使用anaconda,可以采用miniforge作为开源平替,因之前环境搭建使用的就是anaconda,当前需要卸载并替换成miniforge。那为什么一定要用这个呢,其实也不是一定,而是用这个搭建环境比较省事,如果没用这个,我当前环境的python版本过低,解决这个问题耗费的时间会更久,所以最......
  • 碉堡了!DBMind SQL Rewriter 可以进行SQL自动改写
    MogDB3.1版本在AI4DB方面又有很大的增强,其中有一个非常重要的组件DBmind,引入了一个SQL改写工具即SQLRewriter。根据预先设定的规则,将查询语句转换为更为高效或更为规范的形式,使得查询效率得以提升。这里我们就为大家简单演示一下其具体的用法。首先准备一下环境MogDB......
  • 解决VSCode打开终端Terminal闪退的问题
    原文连接:https://blog.csdn.net/birdfly2015/article/details/135013758一、背景在新电脑上使用了VSCode,但是一打开Terminal,Terminal马上就消失了,在网上找了很久,都没有找到对应的分析二、解决思路首先,是从这个文档中找到了灵感,这个文档里面汇集了大部分的问题,如果有其他问题可以......
  • JetBrains RubyMine 2024.1 (macOS, Linux, Windows) - 最智能的 Ruby 与 Rails IDE
    JetBrainsRubyMine2024.1(macOS,Linux,Windows)-最智能的Ruby与RailsIDE请访问原文链接:JetBrainsRubyMine2024.1(macOS,Linux,Windows)-最智能的Ruby与RailsIDE,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsRubyMine-最智能的Ru......
  • 关于LayuiAdmin单页版 点击 生成新的 tab标签页
    挠头一小时,解决一秒钟直接上代码html<buttonclass="layui-btnlayuiadmin-btn-useradmin"id="openNewTabBtn">添加</button>js layui.use(['element','table','jquery'],function(){ var$=layui.$ var......
  • 容斥原理简单题——需要动手画图才好想清楚
    找到最小的数满足里面有n个不被x整除的整数,m个不被y整除的数,且这n个数和m个数完全不重合。x和y都是质数intn,m,a,b;//inta[N];boolcheck(intx){ intn1=x/a; intm1=x/b; intc=x/(a*b); intp=n1-c,q=m1-c; intlf=x-n1-m1+c; intp1=max(m-p,0LL); intq1=max(n......
  • SqlServer中的MAX函数的两种用法
    原文链接:https://blog.csdn.net/yixiaobing/article/details/136549794在 SQL Server中,MAX 函数是一个聚合函数,用于从指定的列中检索最大值。它会遍历列中的所有值(忽略NULL值),如果列中的所有值都是NULL,MAX 函数将返回NULL。并返回其中的最大值。MAX 函数对于快速确定一......
  • AISing Programming Contest 2021(AtCoder Beginner Contest 202)
    D-aabababaa根据题意从左往右进行分析如果当前该字母为a那么存在两种情况一种为b的数量为0一种为剩余的k的数量小于右边所有情况的总和其总和对应为C(剩余的长度,b的个数)反之则为b点击查看代码intget(intx,inty){intans=1;for(inti=1;i<=y;i++){ans=(x-i......
  • P10245 Swimming Pool题解
    P10245SwimmingPool题意给你四条边\(abcd\),求这四条边是否可以组成梯形。思路这显然是一道简单的普通数学题。判断是否能构成梯形只需看四条边是否能满足,上底减下底的绝对值小于两腰之和且大于两腰之差。证明过程如图,\(AB=a\),\(BC=b\),\(CD=c\),\(AD=d\)。过点\(D\)......
  • P10244 String Minimization 题解
    P10244StringMinimization题意给你四个长度为\(n\)的字符串,分别是\(abcd\)。你可以选择一个\(i\)然后交换\(a[i]\)和\(c[i]\),并交换\(b[i]\)和\(d[i]\)。求在\(a\)的字典序尽量小的前提下,\(b\)字典序最小是什么。思路本题并不难。只需要在\(a[i]>c[i]\)......