hdu 4565 So Easy (矩陣 快速冪)

2021-12-29 20:48:22 字數 572 閱讀 4337

題目大意:就是給出a,b,n,m;讓你求s(n);

解題思路:因為n很可能很大,所以一步一步的乘肯定會超時,我建議看**之前,先看一下快速冪和矩陣快速冪,這樣看起來就比較容易,這裡我直接貼別人的推導,應該很容易懂。  

看到這裡你應該明白了大概吧!好吧現在繼續看我的**吧!!

ac**:

#include

long long c[2][2],d[2];

int main()

n=n/2;

x=(c[0][0]*c[0][0]+c[0][1]*c[1][0])%m;

y=(c[0][0]*c[0][1]+c[0][1]*c[1][1])%m;

p=(c[1][0]*c[0][0]+c[1][1]*c[1][0])%m;

q=(c[1][0]*c[0][1]+c[1][1]*c[1][1])%m;

c[0][0]=x;

c[0][1]=y;

c[1][0]=p;

c[1][1]=q;

}printf("%i64d\n",(d[1]+m)%m);

}return 0;

}

HDU 4565 So Easy 矩陣快速冪

題目大意 求 解題思路 這題跟hdu 2256 problem of precision類似,只不過這題是向上取整 有乙個隱藏的條件 a 1 2 b a 2 表明a 1 b a 也就是 a sqrt b n是小於1的 附上hdu 2256 problem of precision的題解鏈結 注意in...

HDU 4565 矩陣快速冪

矩陣快速冪模板 用矩陣快速冪實現斐波拉希數的推導 這個矩陣自乘n次。連續自乘n次的話就沒意思了,那還不如直接上fibonacci遞推公式呢。矩陣的魅力就在於它可以上快速冪。因為矩陣乘法滿足結合律麼 注意取模 加m因為有mod負 include include include include defi...

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 還有記...