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

    定理

    设S是一个有限集,(A_1,A_2,···,A_n)是S的n个子集,则

    (|S-igcup_{i=1}^nA_i|=sum_{i=0}^n(-1)^icdotsum_{1 leq j_1< j_2···< j_ileq n}|igcap_{k=1}^{i}A_{j_k}|)((igcap emptyset=S))

    (xin S-igcup_{i=1}^{n}A_i),在(i=0)时被算了1遍

    (xin igcup_{i=1}^nA_i,xin A_{k1},A_{k2},A_{k3}···,A_{kl}),

    (sum_{i=0}^l (-1)^icdot{l choose i}=(1-1)^l=0),因此x会被算0遍

    综上该公式等式两边成立

    应用

    不定方程解的数量

    求不定方程(x_1+x_2+···+x_k=n)的解的数量,(x_i)为整数,且(l_i leq x_i leq r_i(1leq ileq k))

    (:) (S={x_1+x_2+···+x_k=n的所有满足l_ileq x_i的解})

    (quad A_i={ x_1+x_2+···+x_k=n的所有满足r_i < x_i的解})


    (ans=|S-igcup_{i=1}^nA_i|=sum_{i=0}^n(-1)^icdotsum_{1 leq j_1< j_2···< j_ileq n}|igcap_{k=1}^{i}A_{j_k}|)

    求解(sum_{1 leq j_1< j_2···< j_ileq n}|igcap_{k=1}^{i}A_{j_k}|)

    两种情况:
    1.(pin {j_1,j_2,···,j_i}, x_pgeq r_i+1)
    2.(p otin {j_1,j_2,···,j_i}, x_pgeq l_i)

    (sum_{1 leq j_1< j_2···< j_ileq n}|igcap_{k=1}^{i}A_{j_k}|)共有(2^k)种方案

    每种方案({n+k-1-sum_{i=1}^{k}(l_1 : or : r_i+1) choose k-1})

    所以(ans=|S-igcup_{i=1}^nA_i|=sum_{i=0}^n(-1)^icdotsum_{1 leq j_1< j_2···< j_ileq n}{n+k-1-sum_{i=1}^{k}(l_1 : or : r_i+1) choose k-1})

    容斥原理符号

    设S是一个有限集,(a_1,a_2,···,a_n)是n种性质
    (N(a_i))为S中有(a_i)性质的元素的数量,特殊的,记(N(1)=|S|)
    (N(1-a_i))为S中没有(a_i)性质的元素的数量
    (N(a_{i1},a_{i2},···a_{ik}))为S中同时有(a_{i1},a_{i2}···a_{ik})的元素的数量
    (N(apm b)=N(a)pm N(b))
    容斥原理可以写为
    (N((1-a_1)(1-a_2)···(1-a_n))=sum_{i=0}^{n}(-1)^i cdot sum_{1leq j_1<j_2···<j_ileq n}N(a_{j_1}a_{j_2}···a_{j_i}))
    对于有些性质有,有些性质没有,公式可以写为
    (N(a_1···a_x(1-a_{x+1})···(1-a_{n+x}))=sum_{i=0}^{n}(-1)^i cdot sum_{x+1leq j_1<j_2···<j_ileq n+x}N(a_1···a_xa_{j_1}a_{j_2}···a_{j_i}))
    例题
    1.https://ac.nowcoder.com/acm/contest/219/B
    2.CQOI2012局部最小值 题解
    3.Mike and Foam 题解

  • 相关阅读:
    适合高要求应用的高性能MEMS IMU解决方案
    apt-get本地软件源搭建
    DNS与ARP协议
    vue computed
    常见宏任务与微任务
    Promise.resolve解析
    为什么var可以重复声明
    symbol
    引用类型转换为原始值(基本类型)
    ==运算符
  • 原文地址:https://www.cnblogs.com/hh--boke/p/15435344.html
Copyright © 2011-2022 走看看