• f(1) = 1
• f(2) = 1
• f(n) = f(n-1) + f(n-2) (n ≥ 2 且 n 為整數)
請你求出 f(n) mod 1000000007 的值。
·第 1 行:乙個整數 n
第 1 行: f(n) mod 1000000007 的值
對於 60% 的資料: n ≤ 92
對於 100% 的資料: n在long long(int64)範圍內。
\(\displaystyle \beginl}}
\ 現在我需要求的矩陣是:\\
\begin
f[ i]\\
f[ i-1]
\end\\
根據題目中給出的條件:f[ i] =f[ i-1] +f[ i-2]\\
下一步求f[ i+1]\\
所以求初始矩陣為\\
\begin
1 & 1\\
1 & 0
\end\\
對初始矩陣進行矩陣快速冪然後輸出a[ 1][ 1]
\end\)
#include #include #include #include #include #include #define re register
#define max 200000012
#define int long long
int n;
const int mod=1000000007;
struct mat
inline void build()
};mat operator*(mat &a,mat &b)
mat a;
mat quick_mat(int x)
return ans;
}signed main()
mat ans=quick_mat(n-2);
ans=ans*b;
printf("%lld",ans.a[1][1]);
return 0;
}
洛谷P1962 斐波那契數列
f 1 1 f 2 1 f n f n 1 f n 2 n 2 且 n 為整數 請你求出 f n mod 1000000007 的值。輸入格式 第 1 行 乙個整數 n 輸出格式 第 1 行 f n mod 1000000007 的值 輸入樣例 1 5 輸出樣例 1 5 輸入樣例 2 10 輸出樣例...
洛谷P1962 斐波那契數列
f 1 1 f 2 1 f n f n 1 f n 2 n 2 且 n 為整數 請你求出 f n mod 1000000007 的值。輸入格式 第 1 行 乙個整數 n 輸出格式 第 1 行 f n mod 1000000007 的值 輸入樣例 1 5 輸出樣例 1 5 輸入樣例 2 10 輸出樣例...
洛谷 P1962 斐波那契數列
f 1 1 f 2 1 f n f n 1 f n 2 n 2 且 n 為整數 請你求出 f n mod 1000000007 的值。矩陣快速冪 斐波那契數列通項公式為 f i f i 1 f i 2 相當於dp的轉移方程是一致的,那麼初始矩陣 0 1 不斷去乘上狀態轉移矩陣,即不斷進行矩陣運算,最...