語法書 / AA 競程語法書 上冊 / 第四單元 / 你的程式會不會太慢?(TLE)

4.9 你的程式會不會太慢?(TLE)

競程的題目有時間限制(通常 1-2 秒)。如果你的程式跑得太慢、超過時限,會得到 TLE(Time Limit Exceeded)。所以在動手寫之前,最好先大概估一下:這個做法會不會太慢?

基本法則:現代電腦能在 1 秒內執行約 10^9 次簡單運算。

「簡單運算」包括加、減、比較。「複雜運算」如除法、取餘會慢一些——複雜運算多、或沒把握時,抓保守一點(例如改用 10^8 估)。

如何估計:

  1. 計算你的程式大約會執行多少次運算
  2. 除以 10^9,估出秒數的量級
  3. 估出來比時限小很多(例如不到十分之一)→ 放心寫;跟時限同一個量級 → 當作危險——換方法,或先實測確認

登入後即可閱讀完整內容

語法書免費開放給所有 AACPOJ 帳號,註冊只要一分鐘。