一种很好用的容斥

引言

刚刚在看一篇题解的时候发现了这种容斥,我觉得很新奇,同时觉得这东西应该挺有用

正文

假设一共有 n n n个人,我要计算“恰好有 k k k个人满足某特定条件”的方案数

我先钦定某 i i i个人满足这个特定条件(其他人满足不满足无所谓)。然后在这 i i i个人满足条件的情况下,得到的方案数为 f ( i ) f(i) f(i)

那么

a n s = ∑ i = k u p ( − 1 ) i − k ( i k ) ( n i ) f ( i ) ans = \sum_{i=k}^{up} (-1)^{i-k} \binom{i}{k} \binom{n}{i} f(i) ans=i=kup(1)ik(ki)(in)f(i)

其中
( − 1 ) i − k ( i k ) (-1)^{i-k} \binom{i}{k} (1)ik(ki)
就是容斥系数

先说一个公式,方便下面的证明

( n r ) ( r l ) = ( n l ) ( n − l r − l ) \binom{n}{r} \binom{r}{l} = \binom{n}{l} \binom{n-l}{r-l} (rn)(lr)=(ln)(rlnl)

先举几个例子:

对于“恰好有 k k k个人满足条件”的情况,在 i = k i=k i=k的时候计算了一次

对于“恰好有 k + 1 k+1 k+1个人满足条件”的情况,在 i = k i=k i=k的时候算了 ( k + 1 k ) \binom{k+1}{k} (kk+1)次,所以这种情况的系数我要用 − ( k + 1 1 ) -\binom{k+1}{1} (1k+1)

对于“恰好有 k + 2 k+2 k+2个人满足条件”的情况,在 i = k i=k i=k的时候被算了 ( k + 2 k ) \binom{k+2}{k} (kk+2)次,在 i = k + 1 i=k+1 i=k+1的时候被算了 − ( k + 2 k + 1 ) ( k + 1 k ) = − ( k + 2 k ) ( 2 1 ) -\binom{k+2}{k+1} \binom{k+1}{k} = -\binom{k+2}{k} \binom{2}{1} (k+1k+2)(kk+1)=(kk+2)(12)次(利用前面描述的公式),前面一共被算了 ( k + 2 k ) \binom{k+2}{k} (kk+2)次,所以其系数应该是 ( k + 2 k ) \binom{k+2}{k} (kk+2)

很神奇是不是?

对于 i = k + t i=k+t i=k+t的情况,我来看看这种情况是不是恰好总共被算了 0 0 0次:

( k + t k ) − ( k + t k + 1 ) ( k + 1 k ) + ( k + t k + 2 ) ( k + 2 k ) − ( k + t k + 3 ) ( k + 3 k ) + . . . ( − 1 ) t ( k + t k ) \binom{k+t}{k} - \binom{k+t}{k+1} \binom{k+1}{k} + \binom{k+t}{k+2} \binom{k+2}{k} - \binom{k+t}{k+3}\binom{k+3}{k} + ... (-1)^t \binom{k+t}{k} (kk+t)(k+1k+t)(kk+1)+(k+2k+t)(kk+2)(k+3k+t)(kk+3)+...(1)t(kk+t)

根据我之前说的公式,上述式子可以化简成:

( k + t k ) − ( k + t k ) ( t 1 ) + ( k + t k ) ( t 2 ) − ( k + t k ) ( t 3 ) + . . . ( − 1 ) t ( k + t k ) \binom{k+t}{k} - \binom{k+t}{k} \binom{t}{1} + \binom{k+t}{k} \binom{t}{2} - \binom{k+t}{k}\binom{t}{3} + ... (-1)^t \binom{k+t}{k} (kk+t)(kk+t)(1t)+(kk+t)(2t)(kk+t)(3t)+...(1)t(kk+t)

咦?开始有点意思了,我把 ( k + t k ) \binom{k+t}{k} (kk+t)提出来之后,其实就是这个:

( k + t k ) ∑ i = 0 t ( − 1 ) i ( t i ) \binom{k+t}{k} \sum_{i=0}^t (-1)^i \binom{t}{i} (kk+t)i=0t(1)i(it)

杨辉三角形每一行奇数项的和等于偶数项的和,这个是常识。所以这个系数就等于 0 0 0

Wow! Amazing!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值