題意
a number sequence is defined as follows:
f(1) = 1, f(2) = 1, f(n) = (a * f(n - 1) + b * f(n - 2)) mod 7.
given a, b, and n, you are to calculate the value of f(n). 思路
這道題如果初看,本想對7取餘預處理,
但是一看資料太大,所以不好處理。
然後換個思路,可以打表找規律,這樣可以行的通;
昨天剛學了矩陣連乘,所以用構造矩陣試做了一下~~ac,
現在附上**:
#include
#include
#include
using namespace std;
struct matrix //這是定義矩陣這種資料結構讓下面可以使用它
;matrix mul(matrix a,matrix b) //兩矩陣相乘,矩陣乘法,用三層迴圈即可實現
return c;
}matrix pow_mod(matrix a,int b) //矩陣快速冪運算
return s;
}int main()
matrix e;
e.f[0][0]=a; e.f[0][1]=1;
e.f[1][0]=b; e.f[1][1]=0;
e=pow_mod(e,n-2);
cout<<(e.f[0][0]+e.f[1][0])%7<}return 0;
}
hdu1005 矩陣快速冪
為了練習使用矩陣快速冪就寫了矩陣快速冪,其實這道題更方便的做法是找規律,由於n由n 1和n 2確定,而n 1和n 2範圍是0到6,所以共有7 7 49種結果,所以49必定是乙個迴圈。include include include include include define max 3 define...
HDU 1005 題解 思維
數列 類似於斐波那契的模7數列 f 1 f 2 1 f n a f n 1 b f n 2 7 time 1000 ms memory 32768 kb 1 n 100 000 000 1 n 100,000,000 1 n 1 00,0 00,0 00直接開陣列會mle 不開陣列用三個數迭代模擬會...
hdu 3483 矩陣構造
這道題寒假的時候看過,還不小心看了題解,不過題解說神馬早就忘了,剛開始解題的時候完全想錯了,後來才想起來是用矩陣構造 這道題的確適合構造矩陣,因為所求的函式值滿足線性關係,令f n 為最終求解值 首先我們要明確如果用矩陣的作法,那麼矩陣乘法中,最終矩陣,必須包含f n 還可以包含其他函式g n h ...