设
fi,j 为初始只有一张费用为
i 的【一串香蕉(还剩
j 根)】时可以使用【一串香蕉】的次数,则
f0,1=1,
f1,1=k×f0,1+1=k+1。
f1,if0,i=k×f0,i+f1,i−1+1=f1,i−1+1
则:
f1,n=k×f0,n+f1,n−1+1=k×(f1,n−1+1)+f1,n−1+1=(k+1)×f1,n−1+(k+1)=(k+1)×[(k+1)×f1,n−2+(k+1)]+(k+1)=(k+1)2×f1,n−2+(k+1)2+(k+1)…=(k+1)n−1×f1,1+i=1∑n−1(k+1)i=i=1∑n(k+1)i=k(k+1)×[(k+1)n−1]
f1,n 即为答案,使用快速幂与乘法逆元计算即可,时间复杂度为
Θ(T(logn+logmod))。