HDOJ1005 連蒙帶猜的做法

2021-09-14 00:32:25 字數 645 閱讀 1261

暴力膜擬tle了

於是就猜到有個迴圈,反應過來可能可以用kmp演算法求連續的兩個相同的數字串,後來想想直接求解找乙個最小的迴圈週期更方便

然後直接在附上答案的陣列中取就好了

沒有用數學過程求解最小迴圈週期是多少,但是想想看開個

本部落格用來紀念oj小白的刷題記錄

附上ac**

#include#include#includeusing namespace std;

const int maxn = 100;

int f[maxn];

int main()

if (p != 0 && q != 0) break;

} if (n <= p) cout << f[n] << endl;

else

cout << f[(n - p - 1) % (q - p) + p + 1] << endl;

} system("pause");

return 0;

}

總結

1.一定要看資料規模,一般看到模擬次數那麼大的時候就要考慮優化演算法了

2.注意迴圈的臨界點能否取到

3.本題模為7,開的陣列為100,已經足夠,如果模再大一點,就會導致陣列可能不夠用(也可能夠用)

HDOJ 1005 取餘,迴圈,找規律

第一印象就是斐波那契啊,迭代一下吧,不過tle了 然後就開始查思路,歸納如下 這個數列必然是重複某個部分的,理由如下,我覺得理由2好像好懂一點,不過數學太差,不知道有沒有數學根基 1 因為公式是f n a f n 1 b f n 2 mod 7,所以f n a 7 f n 1 b 7 f n 2 7...

hdoj 雜湊表題hdoj1425

github鏈結 include include using namespace std const int offset 500000 bool hash offset 500001 int main for int i offset 500001 i 0 n 0 i return0 這道題資料是...

HDOJ題目分類

hdu題目分類 3301 字串 ac自動機,動態規劃 狀態壓縮 3302 計算幾何 3303 數學 代數運算 高斯消元 3304 圖論 強連通分量 2 sat 3305 動態規劃 凸單調性優化 3306 列舉 3307 貪心 3308 數學 代數運算 3309 最短路 佛洛伊德 3310 動態規劃 ...