题目描述
一个数列{an},满足an+2=x⋅an+1+y⋅an,求
答案对998244353取模。
输入
第一行一个整数T,即数据组数。
下面T行,每行5个整数,即n,a1,a2,x,y,含义如上。
输出
共T行,每行1个整数,即每组数据的答案。
样例输入
3
3 0 2 0 0
3 1 2 0 1
3 1 0 0 1
样例输出
8
10
2
提示
对于100%的数据,1≤T≤104,1≤n≤1018,0≤a1,a2,x,y≤998244352。
思路
这题要求的对象是递推式的三次方和,因此可以通过矩阵快速幂的方法加速求递推
设 ∑ n i = 1 a i 3 在 第 n 项 为 s n \sum_{n}^{i=1} a_{i}^{3}在第n项为s_{n} ∑ni=1ai3在第n项为sn,
那么可以得到 s n = ( x ∗ a n − 1 + y ∗ a n − 2 ) 3 + s n − 1 s_{n}=(x*a_{n-1}+y*a_{n-2})^{3}+s_{n-1} sn=(x∗an−1+y∗an−2)3+sn−1,
通过an+2=x⋅an+1+y⋅an,
将 a n 分 解 为 a n − 1 a n − 2 的 形 式 a_{n}分解为a_{n-1} a_{n-2}的形式 an分解为an−1an−2的形式,
得到 s n = x 3 a n − 1 3 + 3 x 2 y a n − 1 2 a n − 2 + 3 x y 2 a n − 1 a n − 2 2 + y 3 a n − 2 3 s_{n}=x^{3}a_{n-1}^{3}+3x^{2}ya_{n-1}^{2}a_{n-2}+3xy^{2}a_{n-1}a_{n-2}^{2}+y^{3}a_{n-2}^{3} sn=x3an−13+3x2yan−12an−2+3x