題目描述:
給定a0,a1,以及an=p*a(n-1) + q*a(n-2)中的p,q。這裡n >= 2。 求第k個數對10000的模。
輸入
輸入包括5個整數:a0、a1、p、q、k。
輸出
第k個數a(k)對10000的模。
樣例輸入
20 1 1 14 5
樣例輸出
8359
解題思路:
首先,第一反應是用遞迴解題,然而時間複雜度過大。接著嘗試了用陣列儲存結果,在牛客網的平台上能通過測試,但是陣列開的不夠大,在九度的案例上會出現runtime error(應該是這個原因吧)。在網上查詢資料之後,發現大家解決這類問題用的一般是矩陣乘法(配上快速冪,也叫矩陣二分乘法),看來我的基礎還是不夠好啊。。。
普通思路:
矩陣乘法思路:#include
#define maxn 1000000
int a0, a1, p, q, k;
const int mod = 10000;
int a[maxn];
void init(int k)
} int main()
return
0;}
runtime error常見原因#include
#define maxn 1000000
int a0, a1, p, q, k;
const int mod = 10000;
struct matrix;
void matrixmul(matrix *m1, matrix *m2)
int main()
if (k == 1)
matrix m = , base = ;
int num = k-1;
while(num != 0)
printf("%d\n", (m.m00
*a1 + m.m01*a0)%mod);
}return
0;}
矩陣乘法經典題目
參考部落格
九度OJ 1082 清華大學2023年機試
題目描述 使用 伺服器能夠在一定程度上隱藏客戶端資訊,從而保護使用者在網際網路上的隱私。我們知道n個 伺服器的ip位址,現在要用它們去訪問m個伺服器。這 m 個伺服器的 ip 位址和訪問順序也已經給出。系統在同一時刻只能使用乙個 伺服器,並要求不能用 伺服器去訪問和它 ip位址相同的伺服器 不然客戶...
清華大學2023年機試 進製轉換 1080
題目描述 將m進製的數x轉換為n進製的數輸出。輸入 輸入的第一行包括兩個整數 m和n 2 m,n 36 下面的一行輸入乙個數x,x是m進製的數,現在要求你將m進製的數x轉換成n進製的數輸出。輸出 輸出x的n進製表示的數。樣例輸入 16 10 f樣例輸出 15解題思路 就是進製轉換,但是需要注意的是資...
清華大學2023年機試 最小郵票數 1209
題目描述 有若干張郵票,要求從中選取最少的郵票張數湊成乙個給定的總值。如,有1分,3分,3分,3分,4分五張郵票,要求湊成10分,則使用3張郵票 3分 3分 4分即可。輸入 有多組資料,對於每組資料,首先是要求湊成的郵票總值m,m 100。然後是乙個數n,n 20,表示有n張郵票。接下來是n個正整數...