計算幾何

預備知識

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

課程大綱

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

課前自我鍛鍊

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

舒適的打比賽環境

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

預備的預備知識

  • 網路資源
  • 你的好友

基礎 DP

預備知識

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

課程大綱

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

進階 DP

預備知識

  • 動態規劃的基本應用(包含樹DP、位元DP、LIS、LCS等)
  • 使用資料結構優化DP轉移
  • 高中排列組合

課程大綱

  • 構造DP
  • 組合DP與SOS DP
  • 狀態優化

初階圖論

預備知識

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

課程大綱

  • 最短路的應用
  • 圖的連通性
  • 樹論
  • 匹配

初階資料結構

預備知識

  • std::vector 語法

課程大綱

  • STL 應用:bitset、離散化
  • 並查集
  • Sparse Table
  • BIT、線段樹、樹堆
  • 懶人標記、持久化、動態開點

進階資料結構

預備知識

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

課程大綱

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

初階數學

預備知識

  • 高中排列組合

課程大綱

  • 計數原理
  • 生成函數
  • 數論
  • 群論

進階數學

預備知識

  • 不害怕數學與抽象符號
  • 會一點群論或微積分或線性代數會有幫助(但不一定需要)

課程大綱

  • 篩法與整除的求和
  • 模運算
  • 戴德金整環與理想的處理(仮)

分治

預備知識

  • 合併排序法與逆序數對
  • 初階資料結構
  • 基礎 DP
  • 淺淺的看過主定理

課程大綱

  • 經典分治問題
  • 分治與資料結構
  • 換個角度看分治
  • 分治與競賽程式

捲積

預備知識

  • 複數四則運算
  • 位元運算 (AND, OR, XOR, etc.)
  • 矩陣乘法
  • 多項式乘法

課程大綱

  • 多項式乘法與快速傅立葉變換、數論轉換
  • FFT 與 NTT 的實作
  • FFT 與 NTT 的應用
  • 快速沃爾什變換與位元卷積
  • FWHT 的應用