暴力膜擬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 動態規劃 ...