首页 > 其他分享 >min-max容斥

min-max容斥

时间:2023-05-20 10:33:46浏览次数:43  
标签:limits min max sum 容斥 subseteq neq

min-max容斥

command_block - Min-Max容斥小记

经常与 FWT 等知识搭配食用。

min-max 容斥证明的思想是贡献打包计算。


\[\max(S) = \sum\limits_{T \subseteq S, T \neq \emptyset} (-1)^{|T| + 1} \min(T) \\ \min(S) = \sum\limits_{T \subseteq S, T \neq \emptyset} (-1)^{|T| + 1} \max(T) \\ \]

证明(以 \(\max(S) = \sum\limits_{T \subseteq S, T \neq \emptyset} (-1)^{|T| + 1} \min(T)\) 为例):

记全集 \(U = \{ A_1, A_2, \dots, A_n \}\),其中 \(A\) 降序排列。

记 \(S \subseteq U, S \neq \emptyset\),\(S = \{ A_{a_1}, A_{a_2}, \cdots, A_{a_m} \}\),同样降序排列。

记 \(a_m = k\),即 \(\min(S) = A_k\)。记 \(\max(S) = A_{a_1}\)。

  • 当 \(k = 1\)时, 易知 \(S = \{ A_1 \}\),则 \(T\) 只能为 \(\{ A_1 \}\),\(\max(S) = A_1 = (-1)^{2}A_1 = (-1)^{2}\min(T)\)。

  • 当 \(k > 1\) 时:枚举 \(T \subseteq S, T \neq \emptyset\)。

    • 当 \(T = \{ A_{a_1} \}\) 时,有 \(\min(T) = \max(T) = \max(S)\)。

    • 否则,对于其他的 \(T \neq \{ A_{a_1} \}\),

      当 \(\min(T) = A_{a_x}\) 时,仅考虑 \(T\) 取 \(S\) 中前 \(x\) 个元素(特殊考虑存在元素相等时的情况),

      有 \(2^{x - 2}\) 个 \(T\) 的大小为偶数,有 \(2^{x - 2}\) 个 \(T\) 的大小为奇数,故能抵消。

      即此类 \(T\) 对 \(\max(S)\) 无贡献。

    于是原式的求和转为 \((-1)^{2}\min(\{ A_{a_1} \}) = A_{a_1} = \max(S)\)。

综上可知 \(\max(S) = \sum\limits_{T \subseteq S, T \neq \emptyset} (-1)^{|T| + 1} \min(T)\)。

同理可得 \(\min(S) = \sum\limits_{T \subseteq S, T \neq \emptyset} (-1)^{|T| + 1} \max(T)\)。

当 \(U\) 中存在多个元素的值相等时,结论仍然适用。


\[\operatorname{Kthmax}(S) = \sum\limits_{T \subseteq S, T \neq \emptyset}(-1)^{|T| + K}\binom{|T| - 1}{K - 1}\min(T) \\ \operatorname{Kthmin}(S) = \sum\limits_{T \subseteq S, T \neq \emptyset}(-1)^{|T| + K}\binom{|T| - 1}{K - 1}\max(T) \\ \]

不妨先来看一下其在特殊情况下的正确性:

\[\operatorname{1thmax(S)} = \max(S) = \sum\limits_{T \subseteq S, T \neq \emptyset}(-1)^{|T| + 1}\binom{|T| - 1}{1 - 1}\min(T) = \sum\limits_{T \subseteq S, T \neq \emptyset}(-1)^{|T| + 1}\min(T) \\ \]

证明(同样以求 \(\operatorname{kthmax}(S)\) 为例):

前面的定义直接照搬:

记全集 \(U = \{ A_1, A_2, \dots, A_n \}\),其中 \(A\) 降序排列。

记 \(S \subseteq U, S \neq \emptyset\),\(S = \{ A_{a_1}, A_{a_2}, \cdots, A_{a_m} \}\),同样降序排列。

记 \(a_m = k\),即 \(\min(S) = A_k\)。记 \(\max(S) = A_{a_1}\)。

构造 \(\operatorname{Kthmax}(S) = \sum\limits_{T \subseteq S, T \neq \emptyset}F(|T|)\min(T) \\\),欲求 \(F(|T|)\)。

\(k = 1\) 略,这里只考虑 \(k > 1\)。

类似地考虑令 \(\min(T) = A_{a_x}\),并只考虑 \(T\) 取 \(S\) 中前 \(x\) 个元素(特殊考虑存在元素相等时的情况)。

考虑 \(A_{a_x}\) 必选,则这样的 \(T\) 有 \(2^{x - 1}\) 种可能,对 \(\operatorname{Kthmax}(S)\) 的贡献为 \(\sum\limits_{i = 0}^{x - 1}\binom{x - 1}{i}F(i + 1)\)。

根据我们的目的,需使 \(\sum\limits_{i = 0}^{x - 1}\binom{x - 1}{i}F(i + 1) = [x = K]\),即最终只有 \(\min(T) = A_{a_K}\) 的贡献和为 \(1\),其他为 \(0\)。

换元,得 \(\sum\limits_{i = 0}^{x}\binom{x}{i}F(i + 1) = [x + 1 = K]\)。

比较标准的二项式反演形式。令 \(G(x) = [x = K - 1] = \sum\limits_{i = 0}^{x}\binom{x}{i}F(i + 1)\):

\[\begin{aligned} F(x + 1) &= \sum\limits_{i = 0}^{x}\binom{x}{i}(-1)^{x - i}[i = K - 1] \\ &= \binom{x}{K - 1}(-1)^{x - (K - 1)} \\ F(x) &= \binom{x - 1}{K - 1}(-1)^{x - K} \end{aligned} \]

原式得证。对于求 \(\operatorname{Kthmin}(S)\) 同理。


\[E[\max(S)] = \sum\limits_{T \subseteq S, T \neq \emptyset} (-1)^{|T| + 1} E[\min(T)] \\ E[\min(S)] = \sum\limits_{T \subseteq S, T \neq \emptyset} (-1)^{|T| + 1} E[\max(T)] \\ E[\operatorname{Kthmax}(S)] = \sum\limits_{T \subseteq S, T \neq \emptyset}(-1)^{|T| + K}\binom{|T| - 1}{K - 1}E[\min(T)] \\ E[\operatorname{Kthmin}(S)] = \sum\limits_{T \subseteq S, T \neq \emptyset}(-1)^{|T| + K}\binom{|T| - 1}{K - 1}E[\max(T)] \\ \]

期望的线性性。

标签:limits,min,max,sum,容斥,subseteq,neq
From: https://www.cnblogs.com/Schucking-Sattin/p/17416865.html

相关文章

  • 基于FPGA的Hamming编译码verilog开发实现,包括testbench测试程序
    1.算法仿真效果vivado2019.2仿真结果如下:    2.算法涉及理论知识概要        汉明码(HammingCode),是在电信领域的一种线性调试码,以发明者理查德·卫斯里·汉明的名字命名。汉明码在传输的消息流中插入验证码,当计算机存储或移动数据时,可能会产生数据位错误,以侦......
  • boot-admin 项目数据库缺省字段设计之最佳实践
    数据库(Database)中的缺省字段(也称为默认字段),就是在一般情况下,每个数据表(Table)必须包含的字段(Field),这类字段用于满足特定的数据需求,字段值的填充或更改一般遵照一定的逻辑要求。缺省字段的设计应该考虑到数据的完整性和一致性,以确保数据的正确与可靠,设计合理的表字段对于数据的有效......
  • 2023 Hubei Provincial Collegiate Programming Contest
    C.DarknessI首先根据短边放一条对角线,然后往后每隔一列只放一个即可。#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongint32_tmain(){ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);intn,m;cin>>n>>m......
  • 2023 CCPC Henan Provincial Collegiate Programming Contest
    A.小水獭游河南a的长度小于26,所以直接暴力枚举暴力判断。#include<bits/stdc++.h>usingnamespacestd;voidsolve(){strings;cin>>s;if(s.size()==1){cout<<"NaN\n";return;}map<char,int>cnt;......
  • Sonarqube---You're not authorized to run analysis. Please contact the project ad
    问题:sonarqube执行时报错:You'renotauthorizedtorunanalysis.Pleasecontacttheprojectadministrator原因:项目开始执行是好的,因为需要做项目的权限控制,所以将project从public修改为private后,再执行就报You'renotauthorizedtorunanalysis.Pleasecontacttheproject......
  • Element plus admin安装依赖
    一,首选确保已经安装了node,我安装的是当前最新版:18.16二,安装pnpm,在命令行中执行:npminstall-gpnpmpnpm官网:https://www.pnpm.cn三,打开Elementplusadmin工程,在里面双击i随后就开始安装各种依赖了! Elementplusadmin官网:https://github.com/kailong321200875/vue-elem......
  • Spring boot 整合 ffmpeg 实现给视频添加文字水印 只有上传minio(理论通用!!)
    只要有ffmpeg命令理论可以实现所有ffmpeg能做的的事儿!!思路:前端上传视频通过commons-io的FileUtils.copyInputStreamToFile()将流复制到文件中java执行ffmpeg命令对这个文件进行转换输出到另外一个临时文件在将添加水印后的文件转成inputStream流上传到minio(本人小白可能有......
  • Linux安装MinIO
    第一步,进入/opt目录,创建minio文件夹cd/optmkdirminio 第二步,wget下载安装包:wgethttps://dl.minio.io/server/minio/release/linux-amd64/minio 第三步,进入minio文件夹创建log文件cd/miniotouchminio.log 第四步,赋予minio文件执行权限chmod777minio第五步,......
  • 一张图解析FastAdmin中的表格列表的功能
    功能描述请根据图片上的数字索引查看对应功能说明。1.菜单名称和描述默认生成的CRUD是没有菜单名称和描述显示的,如果需要显示则可以修改权限管理->菜单规则,给对应菜单的添加上备注信息后即可显示,支持HTML2.TAB过滤选项卡在一键生成CRUD时,如果表中存在status字段且为ENUM类型,则......
  • 一张图解析FastAdmin中的FormBuilder表单生成器
     功能描述在使用FastAdmin一键生成CRUD后,默认的生成的都是原生HTML的组件代码,会有许多不熟悉前端的小伙伴改动起来会比较费劲。其实在FastAdmin中有一个简单的FormBuilder,但是它只能生成一些简单的文本框或下拉框,像FastAdmin中常用的动态下拉框、城市选择框、联动框,它就没法实......