vjudge
給定乙個數列的前\(m\)項,給定乙個和前\(t\)項相關的遞推式。
有\(q\)個位置的遞推式單獨給出,求數列第\(n\)項。
大部分的轉移還是相同的,所以可以提前構建好矩陣,預處理轉移矩陣的\(2^n\),
這樣子可以在\(o(t^2logn)\)時間裡面進行矩陣快速冪。
對於特殊點排序,特殊點的數值直接爆算,總的複雜度還是正確的。
#include#include#include#include#include#includeusing namespace std;
#define ll long long
#define mod 1000000007
#define max 105
inline int read()
struct matrix
void clear()
void init()
}a[35],f;
int n,m,q,t,c[max],f[max];
int n,t,c[max],mt;
matrix operator*(matrix a,matrix b)
void pre()
fpow(n-now);printf("case %d: %d\n",++tt,f[1][1]);
} return 0;
}
矩陣構造 矩陣快速冪 HDU5950
題目 題意 給出公式f n f n 1 f n 2 2 n 4 給出n f 1 f 2 求f n 分析 快速冪 把公式分解一下,求一下矩陣,矩陣快速冪搞一下就好 題目的難點在於矩陣的構造題解 典型的矩陣快速冪的運用。關鍵是i 4怎麼維護?我們可以當成求第i 1項,那麼i 4就變成了 i 1 4。那麼...
HDU5015 233 Matrix 矩陣快速冪
題目鏈結 題意 給定乙個矩陣的第0列的第1到n個數,第一行第1個數開始每個數分別為233,2333.求第n行的第m個數。思路 將第一行的數全部右移一位,用前一列遞推出下一列,構造矩陣,類似如下 1 0 0 0 0 0 0 1 10 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 ...
hdu 4965 矩陣快速冪
給定兩個矩陣a,b,分別為n k和k n 求出矩陣c a b,矩陣m c n n 將矩陣m中的所有元素取模6,得到新矩陣m 並計算矩陣m 中所有元素的和 注意到ba 得到 6 6,而ab 得到1000 1000 轉化乘法算式為 m abababab.a ba n n 1 b 直接用矩陣快速冪即可 i...