zoukankan      html  css  js  c++  java
  • 容斥原理

    首先,这篇blog可能很水

    关于容斥原理:
    \(\{A_1,A_2,A_3,\dots,A_n\}\)总共\(n\)个集合
    已知任意几个集合的交集大小,要求它们的并集
    则并集大小为:

    \[\sum_{B\subseteq\{A_1,A_2,A_3,\dots,A_n\}}(-1)^{|b|+1}|\cap_{A_i\in B}A_i| \]

    当然,这是个已经烂大街了的式子

    说人话,就是选择如果选了偶数个集合,答案就减去这些集合的交集的大小,如果选了奇数个,就加上它们交集的大小


    总结一下解容斥题的思路
    如果能明显看出来求那些集合的交集,那直接用式子就行

    如果是有一些限定条件,然后求在这些限制下的方案数
    可以先考虑没有这些限制条件的方案数
    然后对答案的补集容斥,也就是至少违反一个限制条件的
    不考虑限制的方案数减去违反奇数个限定条件的,加上违反偶数个限定条件的,就是最终答案
    实际上是一个取补集的方法

    另外有一点,就是用容斥的时候,我们假定有一个条件不满足,就不用考虑是不是其他条件也会不满足
    因为如果除了我们假定的这个条件,还有不满足的条件,那么这种方案一定会在算别的情况的时候被减去
    至于为什么是很好想的,假如指定\(A\)条件,有一种情况是\(B\)也不满足,那么多算一次,肯定会在考虑同时不满足\(A,B\)是时候被减去
    这是容斥最基本的性质,很简单看一下刚才那个公式也能知道
    但是刚学的时候特别容易被绕进去我就是这样

  • 相关阅读:
    nginx配置虚拟主机
    Nginx 目录结构
    Day 12.1模拟赛游记
    Day 11.25模拟赛游记
    Day 11.20模拟赛游记
    Day 11.19模拟赛游记
    Day 11.17模拟赛游记
    【题解报告】P3797 妖梦斩木棒
    8-28练习报告
    二分图匹配与树链剖分
  • 原文地址:https://www.cnblogs.com/suxxsfe/p/12527215.html
Copyright © 2011-2022 走看看