拯救世界题解+组合类生成函数复习
昨天菇菇学长爆讲了一波生成函数然后啥也没听懂
今天一看这道题的题解,终于知道学长在讲什么了
前置芝士,四则运算,多项式,普通生成函数(了解)
首先定义一些东西:
\(\mathcal{A}\)表示一个组合类
\(A\)表示\(\mathcal{A}\)表示该组合类的生成函数,\(A(x)=\sum{A_i*x^i}\)(系数为排列数(不是指排列数,要根据题意转化))
这什么意思呢,举个例子“我现在有一个大头,两个蜜蜂,我想组合出一个大头蜜蜂”,这就是一个经典乘法原理的应用
这里“大头”,和“蜜蜂”都是组合类,根据生成函数,我们可以将他们“生成”一个函数
由于玄学,他们也满足乘法原理(或者说笛卡尔积),于是乘起来(为何如此草率!)
根据题意我们列十个函数(为了好看好理解不用\(\sum\)了)
\[1+x^6+x^{12}+x^{18}+……=\frac{1}{1-x^6}
\]
\[1+x+x^2+……+x^9=\frac{1-x^{10}}{1-x}
\]
\[1+x+……+x^5=\frac{1-x^6}{1-x}
\]
\[1+x^4+x^8+x^{12}+……=\frac{1}{1-x^4}
\]
\[1+x+……+x^7=\frac{1-x^8}{1-x}
\]
\[1+x^2+x^4+x^6+……=\frac{1}{1-x^2}
\]
\[x^0+x^1=1+x
\]
\[1+x^8+x^{16}+x^{24}+x^{32}+x^{40}+……=\frac{1}{1-x^8}
\]
\[1+x^{10}+x^{20}+x^{30}+x^{40}+……=\frac{1}{1-x^{10}}
\]
\[1+x+x^2+x^3=\frac{1-x^4}{1-x}
\]
用乘法原理乘起来就是\(C_{4+n}^{4}\)
什么,你让我用\(FFT\)?
我们还是\(ruby\)吧
n=gets.to_i
print (n + 1)*(n + 2)*(n + 3)*(n + 4)/24