Think:
1知识点:矩阵快速幂
2题意:初始时输入一个序列a(0), a(1), … a(n-1),之后不断构造一个新序列,新序列构造规则为每次选取上次序列的固定位置元素累加
3题意分析:
(1):构造系数矩阵,矩阵快速幂.因为每次对于新序列结点ci,其值与上次序列的固定位置有关系,因此可思考是否可以构造一个0,1系数矩阵,之后每次重复构造新序列时,每构造一次,就乘以0,1系数矩阵一次.
(2):对于序列[a(0), .., a(n-1)] * M = [c(0), …, c(n-1)]故可知0,1系数矩阵M应为n*n,进而寻找关系,得到M[j][i]:序列ci选择的固定位置j
4反思:
(1):矩阵快速幂的矩阵相乘函数,矩阵乘法公式写错,需要反思,要细心严谨
(2):求解pri数组时,矩阵乘法公式写错且忘记取模,需要反思,要专注细心
以下为Accepted代码
#include <cstdio>
#include <cstring>