hdu4549---M斐波那契數列(矩陣+歐拉定理)
Problem Description
M斐波那契數列F[n]是一種整數數列,它的定義如下:
F[0] = a
F[1] = b
F[n] = F[n-1] * F[n-2] ( n > 1 )
現在給出a, b, n,你能求出F[n]的值嗎?
Input
輸入包含多組測試數據;
每組數據占一行,包含3個整數a, b, n( 0 <= a, b, n <= 10^9 )
Output
對每組測試數據請輸出一個整數F[n],由於F[n]可能很大,你只需輸出F[n]對1000000007取模後的值即可,每組數據輸出一行。
Sample Input
0 1 0 6 10 2
Sample Output
0 60
Source
2013金山西山居創意游戲程序挑戰賽——初賽(2)
Recommend
liuyiding | We have carefully selected several similar problems for you: 5189 5188 5186 5185 5184
可以發現,每一項上面的指數,剛好是fib數
但是直接做指數太大,mod為素數
所以根據歐拉定理
mod的歐拉函數值為mod-1
a^b = a^(b%(mod - 1)
然後就可以做了
/*************************************************************************
> File Name: hdu4549.cpp
> Author: ALex
> Mail: [email protected]
> Created Time: 2015年03月16日 星期一 20時12分13秒
************************************************************************/
#include