課前自我鍛鍊

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

舒適的打比賽環境

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

預備的預備知識

  • 網路資源
  • 你的好友

初階資料結構

預備知識

  • 前綴和、差分
  • 二分搜
  • C++ 指標

課程大綱

  • 標準函數庫
  • 併查集
  • 稀疏表
  • BIT、線段樹、Treap
  • 懶人標記、持久化、動態開點
  • 掃描線、離散化

進階資料結構

預備知識

  • 線段樹
  • 併查集
  • 斜率優化的基本概念

課程大綱

  • 李超線段樹
  • 時間線段樹
  • Pattern
  • 吉如一線段樹與均攤分析

數學

預備知識

  • 高中排列組合
  • 高中矩陣
  • 高中微積分

課程大綱

  • 計數原理
  • 生成函數
  • 線性代數
  • 數論

動態規劃

預備知識

  • 經典 DP 問題(背包、LCS、LIS)
  • 前綴和

課程大綱

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

非典型題目

預備知識

  • 排列組合與機率的基本概念
  • 基礎資料結構
  • 基礎圖論

課程大綱

  • 互動題
  • Two Steps 與資訊壓縮
  • Output Only 題與 Heuristic
  • 構造程式題

初階圖論

預備知識

  • DFS
  • 並查集
  • 最短路(bellman-ford)

課程大綱

  • 歐拉迴路
  • 連通性
  • 樹論
  • 最小生成樹
  • 最短路

進階圖論

預備知識

  • 連通性
  • DFS Tree
  • 併查集、線段樹

課程大綱

  • 支配樹
  • 優化建圖
  • Link Cut Tree, Euler Tour Tree
  • 環與迴路

字串

預備知識

  • 整數序列和字典序
  • 有向圖

課程大綱

  • 字串匹配基礎
    • Rolling Hash
    • KMP 和 Z
    • Manacher
  • 字串比較與資料結構
    • Suffix Array
    • Suffix BST
  • 自動機與字串
    • Trie
    • AC 自動機
    • 後綴自動機

計算幾何

預備知識

  • 二維向量的基本運算
  • 國中數學
  • 三角函數的定義

課程大綱

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

分塊算法

預備知識

  • 國中數學
  • 圖論基礎知識:樹、DFS、LCA

課程大綱

  • 各種分塊
  • 根號性質