2021杭电多校1 HDU6956-Pass!【特征方程求解数列通向式+BSGS】

题目链接
赛中知道了 f ( i ) = ( n − 2 ) ∗ f ( i − 1 ) + ( n − 1 ) ∗ f ( i − 2 ) f(i)=(n-2)*f(i-1)+(n-1)*f(i-2) f(i)=(n2)f(i1)+(n1)f(i2),然后考虑到矩阵上去了,然后歪了。
思路
看了题解才知道,可以将上式通过特征方程求解数列的通项公式求得
f ( t ) = ( ( n − 1 ) t + ( n − 1 ) ∗ ( − 1 ) t ) n = x ( m o d    998244353 ) f(t)=\frac{((n-1)^t+(n-1)*(-1)^t)}{n}=x (\mod 998244353) f(t)=n((n1)t+(n1)(1)t)=x(mod998244353)
写一下是如何推导出来的。
已知 a i = ( n − 2 ) ∗ a i − 1 + ( n − 1 ) ∗ a i − 2 a_i=(n-2)*a_{i-1}+(n-1)*a_{i-2} ai=(n2)ai1+(n1)ai2,移项并构造一个类似等比数列的东西:
a i − x ∗ a i − 1 = ( a i − 1 − x ∗ a i − 2 ) ∗ y a_i-x*a_{i-1}=(a_{i-1}-x*a_{i-2})*y aixai1=(ai1xai2)y
那么可以发现
a i = ( x + y ) ∗ a i − 1 − x ∗ y ∗ a i − 2 a_i=(x+y)*a_{i-1}-x*y*a_{i-2} ai=(x+y)ai1xya

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值