?
?
因为是个二维的递推式,当时没有想到可以这样构造矩阵。从列上看,当前这一列都是由前一列递推得到。根据这一点来构造矩阵。令b[i]代表第i列,是一个(n+2)*1的矩阵,即b[1] = [1,233......],之所以在加了两行,是要从前一个矩阵b[i-1]得到b[i]中的第二个数2333...,再构造一个转换矩阵a,它是一个(n+2)*(n+2)的矩阵,那么a^(m-1) * b就是第m列。
?
?
/*
a矩阵:
1 0 0 0 0...
3 10 0 0 0...
3 10 1 0 0...
3 10 1 1 0...
3 10 1 1 1...
..
b矩阵:第1列
*/
#include
#include
#include
?