題解 佳佳的斐波那契數列 矩陣

2022-02-23 21:03:33 字數 2030 閱讀 6960

求\(\sigma i\times fib[i]\)的值

\(n\le2^-1\)

看資料範圍就會做的題...

\[設\\

f(n):=ib[n]

\\g(n)=nf(n)

\\s(n)=\sigma^_g(n)

\]然後

\[f(i)=f(i-1)+f(i-2)

\\s(i)=s(i-1)+g(i)

\]不好求\(g\),但是可以直接這樣

\[g(i)=i\times f(i)\\

=i\times f(i-1)+i\times f(i-2)

\\=(i-1)f(i-1)+(i-2)f(i-2)+f(i-1)+2f(i-2)

\\=g(i-1)+g(i-2)+f(i-1)+2f(i-2)

\]於是我們構造乙個行向量(矩陣)

\[k=\begin

\\g(i)&g(i+1)&f(i)&f(i+1)&s(i)&s(i+1)

\\\\

\end

\]然後想辦法構造乙個轉移矩陣

\[k \times \begin?\end=\begin

\\g(i+1)&g(i+2)&f(i+1)&f(i+2)&s(i+1)&s(i+2)

\\\\

\end

\]就直接根據轉移式構造一下

\[\begin?\end=

\begin

0&1&0&0&0&1

\\1&1&0&0&0&1

\\0&2&0&1&0&2

\\0&1&1&1&0&1

\\0&0&0&0&0&0

\\0&0&0&0&1&1

\end

\]初始矩陣是

\[\begin

\\1&2&1&1&1&3

\\\\

\end

\]最後直接取出第五列就好了(\(s(i)\))

#includeusing namespace std;typedef long long ll;

template < class ccf >

inline ccf qr(ccf b)

inline int qr()

int mod,n;

const int maxn=7;

struct mtx

inline int* operator (register int x)

inline void unis()

inline void operator*=(mtx& f)

inline void operator ^=(const int&p)

}yyb;

ll vec[7]=;

int main()

yyb[1][1]=0;yyb[1][2]=1;yyb[1][3]=0;yyb[1][4]=0;yyb[1][5]=0;yyb[1][6]=1;

yyb[2][1]=1;yyb[2][2]=1;yyb[2][3]=0;yyb[2][4]=0;yyb[2][5]=0;yyb[2][6]=1;

yyb[3][1]=0;yyb[3][2]=2;yyb[3][3]=0;yyb[3][4]=1;yyb[3][5]=0;yyb[3][6]=2;

yyb[4][1]=0;yyb[4][2]=1;yyb[4][3]=1;yyb[4][4]=1;yyb[4][5]=0;yyb[4][6]=1;

yyb[5][1]=0;yyb[5][2]=0;yyb[5][3]=0;yyb[5][4]=0;yyb[5][5]=0;yyb[5][6]=0;

yyb[6][1]=0;yyb[6][2]=0;yyb[6][3]=0;yyb[6][4]=0;yyb[6][5]=1;yyb[6][6]=1;

yyb^=n-1;

ll ans=0;

for(register int t=1;t<=6;++t)

ans=(ans+(vec[t]*yyb[t][5])%mod)%mod;

printf("%lld\n",ans);

return 0;

}

斐波那契數列 題解

原題出自ural 1133。題目大意 擴充套件斐波那契數列在整數集上的定義,即不是從f0 0,f1 1 這樣子開始的,下標可以是任意整數。給定這樣乙個序列中的兩個下標,i,j,以及他們在序列中對應的值fi fj 然後要求fn n是輸入的乙個數字 思路1 由於題目裡說到資料範圍在 2 109 fk 2...

矩陣 斐波那契數列

利用矩陣來求解斐波那契數列的有關問題是acm題中乙個比較常見的題型。例 nyoj 148 斐波那契數列2 有關斐波那契樹列的規律詳見這裡。1 對於n 1,都有f n 與f n 1 互質。2 f n f i f n i 1 f i 1 f n i 現在說說怎麼利用矩陣來求解斐波那契數列。我們可以先儲存...

斐波那契數列 矩陣乘法

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輸出樣例 ...