昨天菇菇学长爆讲了一波生成函数然后啥也没听懂
今天一看这道题的题解,终于知道学长在讲什么了
前置芝士,四则运算,多项式,普通生成函数(了解)
首先定义一些东西:
(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