題意:
給你乙個n*n的矩陣 讓你求s:
思路:
只知道矩陣快速冪 然後nlogn遞推是會tle的。
所以呢 要把那個n換成log
那這個怎麼搞呢
二分!
當k為偶數時:
當k為奇數時:
就按照這麼搞就能搞出來了
(我是看的題解才a的,,, 中間亂搞的時候犯了一些腦殘的錯誤)
// by siriusren
#include #include using namespace std;
int n,mod,k;
struct matrix}first;
matrix mul(matrix a,matrix b)
matrix add(matrix a,matrix b)
matrix
pow(matrix a,int x)
return temp;
}matrix recursive(int x)
else
}int main()
matrix jy=recursive(k);
for(int i=1;i<=n;i++)
}
poj3233經典二分矩陣快速冪
這個有個難點,就是他那個是到10的9次方,所以就是說,應該不能乙個乙個加,看了別人的方法就是用二分的方法,思路 這是一道典型的矩陣快速冪的問題。用到兩次二分,相當經典。矩陣快速冪。首先我們知道 a x 可以用矩陣快速冪求出來。其次可以對k進行二分,每次將規模減半,分k為奇偶兩種情況,如當k 10和k...
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 ...
poj3233(矩陣快速冪)
poj3233 給定n k,m 然後是n n行,我們先可以把式子轉化為遞推的,然後就可以用矩陣來加速計算了。矩陣是加速遞推計算的乙個好工具 我們可以看到,矩陣的每個元素都是乙個矩陣,其實這計算乙個分塊矩陣,我們可以把分塊矩陣展開,它的乘法和普通矩陣的乘法是一樣的。1 include 2 includ...