我把這次 APCS 的成績,當作一次誠實盤點:哪些做對、哪些只是運氣、哪些需要在日常慢慢補齊。
身在資源較少的環境,成績可喜,但更想保留一點謙虛與清醒。

成績紀錄(時間軸)

  • 2024/10(113 年 10 月):觀念 2、實作 1
  • 2025/01(114 年 1 月):僅應試 實作3
  • 2025/06(114 年 6 月):觀念 3、實作 3

alt text

準備與調整:觀念 vs. 實作

觀念題(以 C 語言出題)

我平常主要用 Python,面對 C 語言的觀念題,等於多一層「翻譯」:
把熟悉的邏輯對應到 C 的型別、指標/陣列、運算子優先序與流程控制。這過程迫使我回到本質,理解不同語言背後共通的計算模型與資料表徵

實作題(基本演算法的臨場運用)

實作題核心放在基本演算法與資料結構的靈活應用與配速,而非特殊語法。
我重點練習與回顧的主題包含:

  • 陣列/字串處理、模擬題(邏輯拆解、邊界處理)
  • 排序與搜尋(自訂排序鍵、二分搜尋/答案二分)
  • 前綴和、差分、計數陣列(把 O(n·q) 化簡為 O(n+q) 的思維)
  • 雙指針/滑動視窗(區間和、最長/最短子陣列)
  • 貪婪策略(排序後局部最優、證明直覺)
  • 圖與走訪(BFS/DFS、網格走迷宮、連通區塊)
  • 基礎 DP 入門(一維/二維轉移、狀態設計與記憶化)
  • 時間複雜度直覺(估計 n、m 尺度;先保底可行解,時間夠再優化)

這次我學到的(反思)

  • 讀題耐心 > 花式技巧:不少失分來自 條件漏看 / 邊界遺漏;放慢 10 秒,常能救回 10 分。
  • 先穩後難:實作先拿穩定題(前兩題),建立節奏,再把時間留給需要思考的題。
  • 資料結構選擇感:何時用 set/dict(或 C 的對映結構思維)、何時只用陣列就夠,直接影響實作速度。
  • 複雜度「能過就好」:在可接受時限內,先做出 對且可過 的版本,再考慮從 O(n·q) 降到 O(n log n) 或 O(n)。

我不確定下次還能拿到同樣分數,但可以確定的是:把反思變成習慣,實力會慢慢往上走


接下來的做法(自我要求)

  1. 題 → 觀念 → 再題:用題目定位盲點,回補核心觀念,再用題驗收。
  2. 錯題索引:把經典主題(雙指針、前綴和、BFS/DFS、貪婪 vs. DP)各寫一頁「何時用/怎麼想」。
  3. 限時模擬:刻意練「卡題立刻換題,最後回收」,配速要變成肌肉記憶。
  4. 範式庫:為常見題型整理簡潔的範式(輸入處理、核心轉移、輸出檢查)。

技術關鍵字

演算法複雜度 | 資料結構 | 排序 | 二分搜尋 | 前綴和 | 雙指針 | 貪婪 | BFS/DFS | DP | 程式邏輯

準備筆記(可替換)
(可放整理筆記或練習截圖)