双射法_算法
JueFan 一只绝帆

双射法

还是有点震撼的。

教程关:

对于正整数 nn,我们称⼀个正整数列 a[1,k]a_{[1,k]}nn 的有序划分,当且仅当 ai=n\sum a_i=n

给定 n2n\ge 2,求满⾜ i=1k[2ai]\sum_{i=1}^k[2\mid a_i] 是偶数的有序划分个数(即偶数的个数为偶数)。

2n22^{n-2}

a1=1a_1=1 则将其与下一个合并,改变了偶数的奇偶性。

否则将 a1a_1 变为 11(a11)(a_1-1),改变了偶数的奇偶性。

我们就构造了一个对合(f(f(x))=xf(f(x))=x)。

这是⼀⼤类双射问题的通⽤做法:构造⼀个不会映射到⾃⼰的对合,这样就可以把所有组合对象分为数量相等的两类。

P1

求解:

k=0m(m+kk)2k\sum_{k=0}^m\binom{m+k}{k}2^{-k}

2m2^m

生成函数上的理解就是一个卷积。

考虑组合意义证明,我们两边乘以 2m2^m,想要证明 k=0m(m+kk)2mk=22m\sum_{k=0}^m\binom{m+k}k2^{m-k}=2^{2m}

我们考虑组合意义,右边描述的是长为 2m2m0101 序列,那我们看左边是什么。

 评论
评论插件加载失败
正在加载评论插件
由 Hexo 驱动 & 主题 Keep
总字数 231.7k 访客数 访问量