AcWing 1303. 斐波那契前 n 项和
生活随笔
收集整理的這篇文章主要介紹了
AcWing 1303. 斐波那契前 n 项和
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
AcWing 1303. 斐波那契前 n 項和
題意:
題解:
這個題解分析的太到位了
代碼:
#include<iostream> #include<cstring>#define ll long longusing namespace std;const int N=3;int n,m; ll f1[N][N]={{1,1,1}}; ll A[N][N]={{0,1,0},{1,1,1},{0,0,1} };void mul(ll a[N][N],ll b[N][N]) {ll c[N][N]={0};for(int i=0;i<3;i++)for(int j=0;j<3;j++)for(int k=0;k<3;k++)c[i][j]=(c[i][j]+a[i][k]*b[k][j]%m)%m;memcpy(a,c,sizeof c); }void quick_pow(ll a[N][N],int k) {ll E[N][N]={ //單位陣{1,0,0},{0,1,0},{0,0,1}};while(k){if(k&1) mul(E,a);mul(a,a);k>>=1;}memcpy(a,E,sizeof E); }int main() {cin>>n>>m;quick_pow(A,n-1);mul(f1,A);cout<<f1[0][2]<<endl;return 0; }總結
以上是生活随笔為你收集整理的AcWing 1303. 斐波那契前 n 项和的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: H - Checker FZU - 20
- 下一篇: acwing1304. 佳佳的斐波那契