ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

二项式反演入门

2019-10-31 18:04:04  阅读:736  来源: 互联网

标签:frac 入门 染色 sum 容斥 反演 二项式


目录

二项式反演入门

写在前面

前几天做CF的时候做了一道容斥,感觉很迷,不知道式子怎么推出来的

昨天T3刚好又考了一道容斥 (爆 零 了),也是这种类型的(高维容斥),老师用二项式反演证了(%%%

于是来学学二项式反演

二项式定理

比较基础的内容

结论

\[ (a+b)^n=\sum_{i=0}^n C(n,i) a^{i} b^{n-i} \]

证明

对于单独一项,考虑组合意义,在 \(n\) 个不同的数对中选择 \(i\) 个 \(a\) ,剩下的为 \(b\),方案数为\(C(n,i)\)

最后加起来就行了

二项式反演

结论

\[ g(n) =\sum_{i=1}^n C(n,i) f(i) \Longleftrightarrow f(n)=\sum_{i=1}^n -1^{n-i}C(n,i)g(i) \]

证明

先把左边带入右边
\[ f(n)=\sum_{i=1}^n -1^{n-i}C(n,i) \sum _{k=1}^iC(i,k)f(k) \]
右边式子改变枚举顺序:
\[ f(n)=\sum_{k=1}^n f(k)*\sum_{i=k}^n -1^{n-i} C(n,i)C(i,k) \]
即证明
\[ f(n)=\sum_{k=1}^n [k==n]*f(k) \]
化简系数:
\[ \sum_{i=k}^n -1^{n-i} \frac{n!}{i!(n-i)!}\frac{i!}{k!(i-k)!} \]

\[ =\sum_{i=k}^n -1^{n-i} \frac{n!}{(n-i)!(i-k)!k!} \]

\[ =\frac{n!}{k!} \sum_{i=k}^n \frac{-1^{n-i}}{(n-i)!(i-k)!} \]

乘上\((n-k)!\)
\[ =\frac{n!}{k!(n-k)!} \sum_{i=k}^n -1^{n-i}\frac{(n-k)!}{(n-i)!(i-k)!} \]

\[ =C(n,k)*\sum_{i=k}^n -1^{n-i} C(n-k,n-i) \]

即证明
\[ C(i,k)*\sum_{i=k}^n -1^{n-i} C(n-k,n-i) = [i==k] \]

  1. \(n=k\)

    原式等于
    \[ C(k,k)*-1^{0}*C(0,0) = 1 \]

  2. \(n \not = k\)

    此时有\(\sum_{i=k}^n -1^{n-i} C(n-k,n-i)=0\)

    证明:

    1. \(n-k\)为奇数

      也就是\(n-i\)有\(n-i+1\)个取值,偶数个

      对于\(C(n-k,n-i)\)和\(C(n-k,n-k-(n-i))\) 的系数相反,两两消掉了

    2. \(n-k\)为偶数

      运用二项式定理:
      \[ \sum_{i=0}^n C(n,i) (-1)^{n-i} = \sum_{i=0}^n C(n,i) (-1)^{n-i}1^i \]

      \[ =(1-1)^n=0^n=0 \]

原式得证

第二种形式

\[ g(n)=\sum_{i=1}^n -1^i*C(n,i)*f(i) \Longleftrightarrow f(n)=\sum_{i=1}^n -1^i*C(n,i)*g(i) \]

感性理解,

因为进行了容斥,g(n)相当于f的对立面,用g来算f也就等价了

例题分析

二项式反演的例题一般是用容易得到的式子表示答案的sigma形式

可以推很多容斥式子QwQ

错排问题

\(f(i)\) 表示有i个数不在位置上,\(g(i)\)表示所有排列方法

那么有
\[ g(n)=\sum_{i=0}^n C(n,i)f(i) \]

\[ f(n)=\sum_{i=0}^n -1^{n-i}C(n,i)g(i) \]

化成好康的形式:
\[ =\sum_{i=0}^n -1^{n-i}\frac{n!}{(n-i)!} \]
提出相同项,改变枚举顺序:
\[ =n!\sum_{i=0}^n \frac{-1^i}{i!} \]

球染色

一个n个求,k种颜色,相邻球的颜色不同,每种颜色至少出现一次

考虑\(g(x)\)为不要求至少出现一次的方案数,即为\(k*(k-1)^{n-1}\)

\(f(i)\)表示恰好使用\(i\)种颜色

所以有
\[ g(k)=k*(k-1)^{n-1}=\sum_{i=1}^k C(k,i) f(i) \]

\[ f(k)=\sum_{i=1}^k-1^{k-i}C(i,k)g(i) \]

\[ =\sum_{i=1}^k (-1)^{k-i}C(k,i)*i(i-1)^{n-1} \]

染色问题

这题就不知道高到哪里去了

网上的题解咋都是显然易得啊

有三个限制:

  1. 棋盘的每一行至少有一个小方格被染色。

  2. 棋盘的每一列至少有一个小方格被染色。
  3. 每种颜色都在棋盘上出现至少一次。

注意每个格子可以不染色,所以可用颜色为\(k+1\)种

设其方案数为\(f(i,j,k)\)

考虑用最多染 \(i\) 行,\(j\) 列,\(k\) 种颜色,方案数即为\(g(i,j,k)=(k+1)^{ij}\)

那么有
\[ g(n,m,c)=\sum_{i=1}^n\sum_{j=1}^m\sum_{k=1}^c C(n,i)*C(m,j)*C(c,k)*f(i,j,k) \]
可以得到
\[ f(n,m,c)=\sum_{i=1}^n\sum_{j=1}^m\sum_{k=1}^c -1^{n-i+m-j+k-c}C(n,i)*C(m,j)*C(c,k)*g(i,j,k) \]

\[ f(n,m,c)=\sum_{i=1}^n\sum_{j=1}^m\sum_{k=1}^c -1^{n-i+m-j+k-c}C(n,i)*C(m,j)*C(c,k)(k+1)^{ij} \]

枚举是\(n^3\)的,可以通过

注意到有幂次有sigma有组合数,用二项式定理化简:
\[ =\sum_{i=1}^n\sum_{k=1}^c\sum_{j=1}^m -1^{n-i+m-j+k-c}C(n,i)*C(m,j)*C(c,k)(k+1)^{ij} \]

\[ =\sum_{i=1}^n\sum_{k=1}^c-1^{n-i+c-k}C(n,i)*C(c,k)\sum_{j=1}^m C(m,j)*-1^{m-j}(k+1)^{ij} \]

\[ =\sum_{i=1}^n\sum_{k=1}^c-1^{n-i+c-k}C(n,i)*C(c,k)*\left((k+1)^i-1\right)^m \]

CF1228E

\(n*n\)的矩阵,每个格子可以填1~k的数。要求使得每行每列的数字最小值都为1(至少有一个1),问有多少种填数方案

跟上一题的区别不就是一个对于每种颜色都有限制,一个只对一种颜色有限制吗?

考虑有 \(i\) 行 \(j\) 列对于1没有限制,方案数为
\[ g(i,j)=k^{n i+n j-i j} (k-1)^{n^{2}-n i-n j+i j} \]

\[ g(n,n)=\sum_{i=0}^n \sum _{j=0}^n C(n,i)*C(n,j)*f(i,j) \]

那么
\[ f(n,n)=\sum_{i=0}^n \sum _{j=0}^n -1^{n-i+n-j}C(n,i)*C(n,j)*k^{n i+n j-i j} (k-1)^{n^{2}-n i-n j+i j} \]
好像可以用二项式定理化简吧。。。
\[ f(n,n)=\sum_{i=0}^n -1^{n-i}C(n,i)\sum _{j=0}^n C(n,j)*-1^{n-j}*k^{n i+n j-i j} (k-1)^{n^{2}-n i-n j+i j} \]
之后懒得写了,应该差不多

标签:frac,入门,染色,sum,容斥,反演,二项式
来源: https://www.cnblogs.com/lcyfrog/p/11772757.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有