母函数
母函数是用于解决组合问题计数的一种方法。
在了解它之前我们先看看熟悉的杨辉三角。
杨辉三角的第n行(注意是从0开始标号的)的数字就是 (1+x)n 的展开式从低项到高项的各项系数,也可以表示为组合数的形式 Cin 。如果将两者联系起来我们会发现, (1+x) 可以看成对于一件取舍, 1=x0 就是不取,x就是取。这样在 (1+x)n 的展开式中 xi 项的系数就是从n件物品选取i件的方案数。
定义
给定数列
a0,a1,a2…an
,构造函数
G(x)=a0f0(x)+a1f1(x)+a2f2(x)…anfn(x)
,其中
G(x)
就是该序列的母函数,
f0(x),f1(x),f2(x)…fn(x)
为标志函数。
母函数主要有两种形式:普通型母函数和指数型母函数。
普通型母函数
先看一个例题:HDU 1085
普通型母函数的标志函数一般为
x0,x1,x2…xn
因为每个硬币有个数限制,但是也不难构造出
指数型母函数
再看一个例题:HDU 1521
指数型母函数的标志函数一般为
x00!,x11!,x22!...xnn!
,对于
xii!
表示在一个方案中某个元素出现了
i
次,而不同位置的该种元素本质不同,所以在记方案数时只算作一种,所以最后结果应处以
对于这道题就不难构造出母函数为