題意:
給乙個n*n的矩陣a,然後求s=a + a^2 + a^3 + ..+ a^k.
思路:矩陣快速冪,這個題目挺新穎的,以往的矩陣快速冪都是退出公式,然後構造矩陣,這個比較特別,直接上子矩陣吧
a 1 平方後得到 a^2 1+a 三次方 a^3 1+a+a^2
0 1 0 1 0 1 ...這樣就行了,
還有注意這個是矩陣套矩陣,然後就是快速冪了,比較容易實現,有一點要注意,
大矩陣的單位矩陣只有對角線才是單位小矩陣,還有乙個地方,就是最後我們要在大矩陣的1 2 位置減去單位矩陣,這個減去單位矩陣後如果比0小怎麼辦,我的處理方法是比0小就再加上餘數。
#include#includetypedef struct
m;typedef struct
mm;int n ,mod;
m matm(m a ,m b)
m addm(m a ,m b)
mm matmm(mm a ,mm b)
mm quickmm(mm a ,int b)
return c;
}int main ()
mm ans = quickmm(a ,b + 1);
for(int i = 1 ;i <= n ;i ++)
for(int j = 1 ;j <= n ;j ++)
}return 0;
}
poj 3233 矩陣快速冪
十個利用矩陣乘法解決的經典題目的最後一題 1a終於刷完十道題了,基本都是乙個思路 二分優化!a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 用二分變成 a 1 a 2 a 3 a 4 a 4 a 1 a 2 a 3 a 4 a 1 a 2 a 3 a 4 a 5 a 6 a 7 a ...
poj 3233 矩陣高速冪
題意 給出乙個公式求這個式子模m的解 分析 本題就是給的矩陣,所以非常顯然是矩陣高速冪,但有一點。本題k的值非常大。所以要用二分求和來降低執行時間。include include include include include include include include include incl...
poj3233(矩陣快速冪)
poj3233 給定n k,m 然後是n n行,我們先可以把式子轉化為遞推的,然後就可以用矩陣來加速計算了。矩陣是加速遞推計算的乙個好工具 我們可以看到,矩陣的每個元素都是乙個矩陣,其實這計算乙個分塊矩陣,我們可以把分塊矩陣展開,它的乘法和普通矩陣的乘法是一樣的。1 include 2 includ...