[国家集训队]整数的lqp拆分

本文深入探讨了数学序列求和的两种方法,首先通过递推公式解析了序列求和的计算过程,然后引入了生成函数的概念,展示了如何利用生成函数求解序列的通项公式,最终得出了序列的递推式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们的目标是求∑∏i=1mFai\sum\prod_{i=1}^m F_{a_i}i=1mFai

f(i)=∑∏j=1iFajf(i) = \sum\prod_{j=1}^i F_{a_j}f(i)=j=1iFaj
那么f(i−1)=∑∏j=1i−1Fajf(i - 1) = \sum\prod_{j=1}^{i - 1} F_{a_j}f(i1)=j=1i1Faj
又有递推式f(i)=∑j=1i−1f(j)∗Fai−jf(i) = \sum_{j = 1}^{i - 1}f(j) * F_{a_i - j}f(i)=j=1i1f(j)Faij

那么推吧
f(i)−f(i−1)f(i) - f(i - 1)f(i)f(i1)
=∑j=1i−1f(j)∗Fai−j−∑j=1i−2f(j)∗Fai−1−j=\sum_{j = 1}^{i - 1}f(j) * F_{a_i - j} - \sum_{j = 1}^{i - 2}f(j) * F_{a_i -1- j}=j=1i1f(j)Faijj=1i2f(j)Fai1j
=f(i−1)∗Fa1+∑∏i=1i−2f(j)∗(Fai−j−Fai−1−j)=f(i - 1) * F_{a_1} + \sum\prod_{i=1}^{i - 2} f(j) * (F_{a_i - j} - F_{a_i - 1 - j})=f(i1)Fa1+i=1i2f(j)(FaijFai1j)
=f(i−1)+∑∏i=1i−2f(j)∗Fai−2−j= f(i - 1) + \sum\prod_{i=1}^{i - 2} f(j) * F_{a_i - 2 - j}=f(i1)+i=1i2f(j)Fai2j
=f(i−1)+f(i−2)= f(i - 1) + f(i - 2)=f(i1)+f(i2)

所以f(i)=2∗f(i−1)+f(i−2)f(i) = 2 * f(i - 1) + f(i - 2)f(i)=2f(i1)+f(i2)

法二:(我觉得巨妙)
设 g[i] 为i的lqp拆分的权值和,则 g[i]=∑f[j]∗g[i−j]+f[i]g[i] = ∑f[j] * g[i-j] + f[i]g[i]=f[j]g[ij]+f[i], 其中 g[0]=0,g[1]=1g[0] = 0, g[1] = 1g[0]=0,g[1]=1
A=∑f[i]∗xi,B=∑g[i]∗xiA = ∑f[i] * x^i , B = ∑g[i] * x^iA=f[i]xi,B=g[i]xi ,那么 => B=A∗B+AB = A*B + AB=AB+A
解一下 B ,发现 B=A/(1−A)B = A/(1-A)B=A/(1A)
又∵ A的闭形式是 x/(1−x−x2)x/(1 - x - x^2)x/(1xx2) [斐波那契数的生成函数闭形式]
B=x/(1−2x−x2)B = x/(1 - 2x - x^2)B=x/(12xx2) ,于是直接由B的特征根 得出g[]的递推式 => g[i]=2∗g[i−1]+g[i−2]g[i] = 2*g[i-1] + g[i-2]g[i]=2g[i1]+g[i2].
转自金爷爷哈哈的题解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值