問題 D 例題4 佳佳的Fibonacci

2021-09-25 19:41:43 字數 1305 閱讀 1681

問題

d: 【例題

4】佳佳的

fibonacci

時間限制

: 1 sec  

記憶體限制

: 128 mb

提交: 5  

解決: 4

[提交][狀態

][討論版

][命題人

:quanxing

][edit

] [testdata]

題目描述

佳佳對數學,尤其數列十分感興趣,在研究

fibonacci

之後,他創造出許多稀奇古怪的數列。如求

s(n)

表示fibonacci

數列前n

項和對m

取模之後的值,即

s(n)=(f1+f2+...+fn)mod m

,f1=f2=1

。可是這對佳佳來說還是小菜一碟。終於,他找到乙個自己解決不了的數列。

t(n)

表示fibonacci

數列前n

項變形後的和對

m取模之後的值, 即

t(n)=(f1+2×f2+3×f3+...+n*fn)mod m

,f1=f2=1。

輸入 第一行,包含兩個整數n和

m。1<=n,m<=2的31

次方-1 輸出

共一行,

t(n)的值

樣例輸入

5 5
樣例輸出

1
思路:

矩陣快速冪,加推導斐波那契數列的矩陣遞推式,另外,我們知道菲波那切數列的前n項和等於菲波那切數列的第n-2項值-1

即:s(n)=f(n+2)-1

但這題沒有單純那麼簡單,因為這是乙個帶乘法係數的求和式子。

利用這個等式就可以快速算出

**:

#includeusing namespace std;

#define ll long long

ll mod = 1e9 + 7;

ll n = 2, k;

struct mul

res;

mul mul(mul a, mul b)//矩陣乘法,定義結構體函式,傳入結構體,返回結構體,這樣比較方便

}for (int i = 1; i <= n; i++)}}

return tmp;

}mul quickpow(mul a, ll b, ll modd)//矩陣快速冪

else

}}int main()

位運算的4個例題

例題1 尋找獨一無二的數 解答 利用位運算異或的性質 a a 0,a 0 a,a b c a b c a b c 資料規模100萬,不能用o n 2 應該用o n 演算法,邊讀取邊處理。例題2 為了未來的計算機 解答 方法 一 利用位運算且的性質 a 1 方法 二 利用位運算且的性質 a a 1 可...

問題 A 例題1 數的劃分

題目描述 將整數n分成k份,且每份不能為空,任意兩種劃分方案不能相同 不考慮順序 例如 n 7,k 3,下面三種劃分方案被認為是相同的。1 1 5 1 5 1 5 1 1 問有多少種不同的分法。輸入n,k 6輸出 乙個整數,即不同的分法 樣例輸入 7 3樣例輸出 4題目型別 dfs,求分發的種類 思...

pyuic4和pyrcc4d的差別

今天想把pyqt4 的ui轉為.py檔案,死活不對。廢話不多說直接上對的 pyuic4 o x ui.py x ui.ui 當然了首先是要到相應的ui目錄下去。我出錯的原因是我不太清楚應該用pyuic4還是pyrcc4 很尷尬我先用了pyrcc4 所以導致不成功後再用pyuic4 也無法成功轉換。因...