HDU 4565 矩陣快速冪

2021-07-02 13:53:16 字數 690 閱讀 1298

//矩陣快速冪模板

//用矩陣快速冪實現斐波拉希數的推導

////

///這個矩陣自乘n次。連續自乘n次的話就沒意思了,那還不如直接上fibonacci遞推公式呢。

///矩陣的魅力就在於它可以上快速冪。因為矩陣乘法滿足結合律麼……

///注意取模

//加m因為有mod負

#include #include #include #include #define ll __int64

using namespace std;

ll n,m,a,b,a1,a2;

ll tempa,tempb;

struct matrix///定義陣列

origin,res;

void init()

matrix multiply(matrix x,matrix y)}}

return temp;

}void matmod(ll n)

ll c1=2*a;

ll c0=2;

//printf("c1 = %d\n",c1);

printf("%i64d\n",((res.a[0][0]*c1+res.a[0][1]*c0)+m)%m);//我忘了我加了m

}int main()

}return 0;

}

hdu4565矩陣快速冪

這題太坑了。剛開始以為可以用 a sqrt b 1 水過。結果tle,還一直想明明我logn的做法怎麼可能tle。0 1 實在無奈看的題解 a sqrt b n x y sqrt b a sqrt b n 1 a x b y x a y sqrt b 這樣可以構造矩陣 a b x 1 b y 還有記...

hdu 4565 推倒公式 矩陣快速冪

求下式的值 sn a b n m 其中 0 m 215 0n 231 a 1 2 b令 a n a b n b n a b n c n an bn 因為 a 1 2 b所以 0 b 1 所以 0 a b n 1 即 bn 1 也就是說,cn an sn cn 因此,求cn 就行了。cn 兩邊同時乘以...

hdu 4565 公式推導 矩陣快速冪

參考 這公式真心難想到 向上取整等價於加上後面乙個式子,學習了orz。寫完快速冪,我還一直wa,最後才發現中途計算的時候沒有 a mod mod,因為會變成負數,坑啊。include include include include using namespace std define mn 2 de...