計算幾何

預備知識

  • 向量
  • 國中幾何
  • 基本三角函數

課程大綱

  • 向量複習
  • 經典計算幾何問題
  • 好多掃描線
  • 凸包
  • 枚舉與計算幾何
  • 誤差分析

課前自我鍛鍊

先到各大 Online Judge 申請帳號寫題目吧!

舒適的打比賽環境

  • 建置你的開發環境
  • 測試比賽環境指南
  • 點心 x 飲料 x 氣球

預備的預備知識

  • 網路資源
  • 你的好友

初階 DP

預備知識

  • 0/1 背包問題
  • LCS, LIS
  • 最大子矩形和
  • 前綴和

課程大綱

  • 單調隊列優化
  • 斜率優化
  • 1D/1D 凹、凸優化
  • 2D/1D 優化
  • Alien 優化
  • SMAWK

進階 DP

預備知識

  • 基礎 DP 優化(詳見初階 DP)

課程大綱

  • 構造 DP
  • 深入 DP 優化
更多資訊

初階圖論

預備知識

  • DFS & BFS
  • 最短路徑
  • 最小生成樹

課程大綱

  • 最短路的應用
  • 圖的連通性
  • 樹論
  • 仙人掌

進階圖論

預備知識

  • DFS & BFS
  • BCC & SCC

課程大綱

  • 進階算法:支配樹、有向最小生成樹...
  • 匹配、擬陣
  • 平面圖、Cycle space & Cut space
  • 其他
更多資訊

初階資料結構

預備知識

  • STL 語法(stack、queue、priority_queue、map、set)等等

課程大綱

  • 並查集
  • 前綴 & 差分
  • 線段樹、BIT、Sparse Table、Treap
  • 離散化、動態開點、持久化
  • STL 的應用 (optional?)

進階資料結構

預備知識

  • 並查集
  • 線段樹、Sparse Table、BIT
  • 持久化
  • Dijkstra

課程大綱

  • 李超線段樹
  • 時間線段樹
  • 線段樹優化建圖
  • Pattern
  • 吉如一線段樹
更多資訊

數學

預備知識

  • 熱愛數學的心

課程大綱

  • 組合計數
  • 數論
  • 卷積與生成函數

字串

預備知識

  • 熟悉字串的語法 (char * 或 std::string)
  • 字典序
  • RMQ 問題
  • 字典樹(Trie)

課程大綱

  • KMP
  • Z-value
  • Manacher algorithm
  • Suffix array

組合賽局

預備知識

  • 數學歸納法
  • XOR(exclusive or)

課程大綱

  • 組合賽局的定義與分類
  • 賽局和
  • Nim
  • SG定理(Sprague–Grundy theorem)