首页 > 其他分享 >容斥原理

容斥原理

时间:2024-09-02 22:25:57浏览次数:10  
标签:limits sum 容斥 bigcup bigcap 原理

容斥原理是解决这一类问题的:有 \(N\) 个集合 \(S_1,S_2,\dots,S_N\),求 \(|\bigcup \limits_{i=1}^{N}S_i|\)。

首先我们看这个 \(N=2\) 时的问题:

image-20240902214217840

这时很明显答案为 \(|A|+|B|-|A\bigcap B|\) 。

以下是 \(N=3\) 时的样子:

image-20240902211432762

此时答案显然为 \(|A|+|B|+|C|-|A\bigcap B|-|A\bigcap C|-|B\bigcap C|+|A\bigcap B\bigcap C|\)。

仔细观察这两个式子,我们就能发现,所有偶数个集合的交集前面都是减号,而奇数的前面的都是加号,也就是:

\[|\bigcup \limits_{i=1}^N S_i|=\sum \limits_{k=1}^N (-1)^{k-1} \sum \limits_{1\le i_1<i_2<\dots<i_k\le N}|\bigcap \limits_{j=1}^k S_{i_j}| \]

(具体证明在[这里](容斥原理_百度百科 (baidu.com)))

代码

for(int i = 1; i < (1 << n); ++i) {
  ans += (__builtin_popcount(i) % 2 ? 1 : -1) * /* i 代表的集合之交 */;
}

标签:limits,sum,容斥,bigcup,bigcap,原理
From: https://www.cnblogs.com/yaosicheng124/p/18393670

相关文章

  • 大数据新视界--大数据大厂之大数据时代的璀璨导航星:Eureka 原理与实践深度探秘
           ......
  • java并发 第四章共享模型之管程 3 synchronized 原理
    1.轻量级锁轻量级锁的使用场景:如果一个对象虽然有多线程要加锁,但加锁的时间是错开的(也就是没有竞争),那么可以使用轻量级锁来优化。轻量级锁对使用者是透明的,即语法仍然是synchronized假设有两个方法同步块,利用同一个对象加锁 staticfinalObjectobj=newObject();......
  • 概率论原理精解【11】
    文章目录测度论拓扑基定义性质应用拓扑基生成拓扑的过程1.拓扑基的定义2.由拓扑基生成拓扑3.例子说明4.总结例子子基基础例子构造由子基生成的拓扑基础拓扑子基的定义解释例子总结子基(subbase)是一个用于生成拓扑的较弱的工具定义构造过程性质示例例子1:实数线......
  • # 利刃出鞘_Tomcat 核心原理解析(十一)-- WebSocket -- 1
    利刃出鞘_Tomcat核心原理解析(十一)--Tomcat附加功能WebSocket–1一、Tomcat专题-WebSocket-介绍1、Tomcat附加功能:websocket介绍1)websocket:是HTML5新增的协议,它的目的是在浏览器和服务器之间建立一个不受限的双向通信的通道,比如说,服务器可以在任意时刻发......
  • 微型直线导轨高精度运行的工作原理
    微型导轨是一种用于高精度定位和运动控制的传动装置,常用于微小化、高精密度化的机械设备中,如IC制造设备、半导体设备、高速移载的设备、精密测量、检测仪器、医疗设备、X-Ytable,以及高速皮带驱动的设备等小型化设备。微型导轨的构成相对复杂且精密,主要由导轨体、滑块、滚动体、返......
  • 五轴模型RTCP视觉标定原理
            ......
  • 你知道synchronized关键字的底层原理?
    Synchronized【对象锁】采用互斥的方式让同一时刻至多只有一个线程能持有【对象锁】,其它线程再想获取这个【对象锁】时就会阻塞住如下抢票的代码,如果不加锁,就会出现超卖或者一张票卖给多个人publicclassTicketDemo{staticObjectlock=newObject();intticketNum=......
  • 【探索科技之翼:舵机工作原理的奇妙之旅】
    舵机如同一颗璀璨的星辰,以其独特的魅力照亮了众多创新领域的道路。它不仅是机器人、无人机及模型制作的核心部件之一,更是实现精准控制与动态平衡的关键。今天,就让我们一起踏上这场探索之旅,通过生动的动画演示与实际应用案例,深入了解舵机那令人着迷的工作原理及其在各类智能设备......
  • 49. 静态联编动态联编及多态原理
    静态联编动态联编静态多态(就是函数重载)和动态多态静态多态:函数重载,运算符重载动态多态://先有继承关系//父类中有虚函数,子类重写父类中的虚函数//父类的指针或引用指向子类的对象静态多态在编译阶段绑定地址,地址早绑定,静态联编动态多次在运行阶段绑定地址,地址晚绑定,动态联......
  • 触摸传感器的工作原理
        触摸传感器的工作原理因类型而异,常见的触摸传感器类型包括电容式、电阻式、红外式和超声波式等。以下是一些常见触摸传感器的工作原理:电容式触摸传感器:通过检测触摸点与传感器电极之间的电容变化来确定触摸位置。当手指触摸屏幕时,会改变电极之间的电容,从而被传感器......