hdu 4549 矩陣快速冪

2022-06-02 13:03:08 字數 1169 閱讀 2685

題意:

m斐波那契數列f[n]是一種整數數列,它的定義如下:

f[0] = a

f[1] = b

f[n] = f[n-1] * f[n-2] ( n > 1 )

現在給出a, b, n,你能求出f[n]的值嗎?

這題的話,看a ,b 的指數,剛好可以使用斐波那契數列求解。

然後用矩陣做。

a^b %c   這題的c是質素,而且a,c是互質的。

所以直接a^(b%(c-1)) %c

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8

using

namespace

std;

9#define mod 1000000007

10#define pb(a) push_back(a)

11const

int inf=0x3f3f3f3f;12

const

double eps=1e-5

;13 typedef long

long

ll;14

#define cl(a) memset(a,0,sizeof(a))

15#define ts printf("*****\n");

16const

int maxn=30010;17

intn,m,tt,cnt;

18struct

matrix19;

22matrix mul(matrix a,matrix b)

2334}35

return

ret;36}

37 matrix pow_m(matrix a,int

n)38

49return

ret;50}

51long

long pow_m(long

long a,long

long

n)52

62 temp*=temp;

63 temp%=mod;

64 n>>=1;65

}66return

ret;67}

68int

main()

6984 }

HDU 4549 M斐波那契數列(矩陣快速冪)

m斐波那契數列 題意 f 0 a,f 1 b,f n f n 1 f n 2 給定 a,b,n 求 f n 題解 暴力打表後發現 f n a b 斐波那契數列可用矩陣快速冪求解。但是此題中n較大,fib會爆掉。這時候需要引入費馬小定理優化。證明 a x p a p 1.a x p a p 2.a x...

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...

快速矩陣冪HDU2276

題意 有n盞燈,編號為1到n。0表示不亮,1表示亮,如果 i th的燈的左邊燈是亮的,那麼下一秒鐘,i th燈的狀態要改變,0變成1,1變成0。第1個燈的 左邊是第n個燈 輸入t,輸入開始的狀態 問你在第t秒時,燈的狀態時什麼樣的,輸出來。分析 可推出下一秒的狀態a i a i 1 n n a i ...