NYOJ 301遞推求值

2022-01-12 07:20:18 字數 1193 閱讀 7840

時間限制:1000 ms  |  記憶體限制:65535 kb

難度:4

描述給你乙個遞推公式:

f(x)=a*f(x-2)+b*f(x-1)+c

並給你f(1),f(2)的值,請求出f(n)的值,由於f(n)的值可能過大,求出f(n)對1000007取模後的值。

注意:-1對3取模後等於2

輸入第一行是乙個整數t,表示測試資料的組數(t<=10000)

隨後每行有六個整數,分別表示f(1),f(2),a,b,c,n的值。

其中0<=f(1),f(2)<100,-100<=a,b,c<=100,1<=n<=100000000 (10^9)

輸出輸出f(n)對1000007取模後的值

樣例輸入

2

1 1 1 1 0 5

1 1 -1 -10 -100 3

樣例輸出

//b^(n-2)採用矩陣快速冪計算

#include #include 

#define n 3

#define mod 1000007

#define ll long long

struct

matrix;

struct matrix mul(struct matrix a,struct

matrix b)}}

return

res;

}struct matrix mul_matrix(struct matrix b,intn);

//單位陣

while

(n)

return

res;

}int

main()

; memset(tmp.mat,

0,sizeof(tmp.mat));//

tmp值只有(0,0),(1,0)需要填入f(2),f(1)的值,其餘不變

tmp.mat[2][0] = 1

; scanf("%d

",&t);

while(t--)

}return0;

}

參照:

2017-02-28

NYOJ301 遞推求值

遞推求值 nyoj上矩陣專題裡的10道題水了ac率最高的5道,慚愧,還不是完全自己寫的,用了幾乎兩周的時間。模板題我是有自信寫出來的,但對於高階一點的矩陣構造,我還是菜的摳腳。這題感謝mql大哥和她女票指點,自己想了一天不會構造矩陣,然後兩位巨巨一起討論了一下,瞬間明白了。此題關鍵就是在於這個矩陣構...

nyoj 301 遞推求值(矩陣計算)

題目描述 給你乙個遞推公式 f x a f x 2 b f x 1 c 並給你f 1 f 2 的值,請求出f n 的值,由於f n 的值可能過大,求出f n 對1000007取模後的值。注意 1對3取模後等於2 解題思路 如果單純的用遞推來做的話鐵定超時,因為n可能很大。因此可以將遞推公式轉換成矩陣...

nyoj 301 遞推求值 矩陣冪

給你乙個遞推公式 f x a f x 2 b f x 1 c 並給你f 1 f 2 的值,請求出f n 的值,由於f n 的值可能過大,求出f n 對1000007取模後的值。注意 1對3取模後等於2 在濤神的協助下構造出來的矩陣 貌似發表了就格式亂了,空格用 表示 fn.b.a.1.fn 1 fn...