TR的數列 矩陣加速

2021-09-16 18:30:52 字數 1037 閱讀 7422

目錄

一.題目

題目描述 輸入

輸出樣例輸入

樣例輸出 提示

二.題解

三.**

謝謝!tr非常喜歡數學,經常乙個人拿出草稿紙研究奇奇怪怪的數學問題,最近,他突然對數列產生了興趣,他找到乙個數列,類似於斐波拉契,即:tn=1*f1+2*f2+3*f3+……+n*fn    (fn為斐波拉契的第n項值)

現在tr想請你幫忙求tn%m的值

兩個用空格隔開的整數n和m

tn mod m的值

5 5

樣例解釋:

t5 = (1*1+2*1+3*2+4*3+5*5)%5 = 46%5 = 1

這道題可以說不難也不簡單,有很多種方法,我這裡只講一種,感興趣的可以把你的方法發給我喲!

這道題要求的是

但是這不是我們想要的結果,於是我又想,我們可以這樣得到(1*f1+2*f2+3*f3+……+n*fn):

對於n = 5時:

得到這個矩陣:

減去tn即答案。

遞推式:

就這樣就完了。

#include #include #include using namespace std;

#define ll long long

ll n, m, ans;

struct node

}a, b, c;

inline void prepare (node &ans)

inline node qkpow (node x, ll y)

return ans;

}int main ()

模板 矩陣加速(數列)

題目描述 a 1 a 2 a 3 1 a x a x 3 a x 1 x 3 求a數列的第n項對1000000007 10 9 7 取餘的值。輸入格式 第一行乙個整數t,表示詢問個數。以下t行,每行乙個正整數n。輸出格式 每行輸出乙個非負整數表示答案。輸入輸出樣例 輸入 136 810輸出 149 ...

矩陣加速數列遞推

zoj problem set 3690 code include include using namespace std struct matrix matrix matrix operator const matrix t const undef mod undef maxn int main ...

模板 矩陣加速(數列)(矩陣加速遞推)

a 1 a 2 a 3 1 a x a x 3 a x 1 x 3 求a數列的第n項對1000000007 10 9 7 取餘的值。輸入格式 第一行乙個整數t,表示詢問個數。以下t行,每行乙個正整數n。輸出格式 每行輸出乙個非負整數表示答案。矩陣加速裸題 和我的前一篇基本一模一樣 只不過改變了要乘的...