Chapter1 引言
1-1 程式設計競賽
1-2 我們的選擇:Python
1-3 輸入輸出
1-4 複雜度
1-5 抽象類別和基本資料結構
1-6 技術
1-7 建議
1-8 走得更遠
Chapter2 字串
2-1 易位構詞
2-2 T9: 9 個按鍵上的文字
2-3 使用字典樹進行拼寫糾正
2-4 KMP(Knuth-Morris-Pratt)模式匹配演算法
2-5 最大邊的KMP 演算法
2-6 字串的冪次
2-7 模式匹配演算法:Rabin-Karp 演算法
2-8 字串的最長迴文子串:Manacher 演算法
Chapter3 序列
3-1 網格中的最短路徑
3-2 編輯距離(列文斯登距離)
3-3 最長公共子序列
3-4 升序最長子序列
3-5 兩位玩家遊戲中的必勝策略
Chapter4 陣列
4-1 合併已排序串列
4-2 區間的總和
4-3 區間內的重複內容
4-4 區間的最大總和
4-5 查詢區間中的最小值:線段樹
4-6 計算區間的總和:樹狀陣列(Fenwick 樹)
4-7 有k 個獨立元素的窗口
Chapter5 區間
5-1 區間樹(線段樹)
5-2 區間的聯集
5-3 區間的覆蓋
Chapter6 圖
6-1 使用 Python 對圖編碼
6-2 使用 C++ 或 Java 對圖編碼
6-3 隱式圖
6-4 深度優先巡訪:深度優先演算法
6-5 廣度優先巡訪:廣度優先演算法
6-6 連通分量
6-7 雙連通分量
6-8 拓撲排序
6-9 強連通分量
6-10 可滿足性
Chapter7 圖中的環
7-1 歐拉路徑
7-2 中國郵差問題
7-3 最小長度上的比率權重環:Karp 演算法
7-4 單位時間成本最小比率環
7-5 旅行推銷員問題
Chapter8 最短路徑
8-1 組合的屬性
8-2 權重為 0 或 1 的圖
8-3 權重為正值或空值的圖:Dijkstra 演算法
8-4 隨機權重的圖:Bellman-Ford 演算法
8-5 所有源點─目標頂點對:Floyd-Warshall 演算法
8-6 網格
8-7 變形問題
Chapter9 耦合性與流
9-1 二分圖最大匹配
9-2 最大權重的完美匹配:Kuhn-Munkres 演算法
9-3 無交叉平面匹配
9-4 穩定的婚姻:Gale-Shapley 演算法
9-5 Ford-Fulkerson 最大流演算法
9-6 Edmonds-Karp 演算法的最大流
9-7 Dinic 最大流算法
9-8 s-t 最小割
9-9 平面圖的 s-t 最小割
9-10 運輸問題
9-11 在流和匹配之間化簡
9-12 偏序的寬度:Dilworth 演算法
Chapter10 樹
10-1 霍夫曼編碼
10-2 最近的共同祖先
10-3 樹中的最長路徑
10-4 最小權重生成樹:Kruskal 演算法
Chapter11 集合
11-1 背包問題
11-2 找零問題
11-3 給定總和值的子集
11-4 k 個整數之和
Chapter12 點和多邊形
12-1 凸包問題
12-2 多邊形的測量
12-3 最近點對
12-4 簡單直線多邊形
Chapter13 長方形
13-1 組成長方形
13-2 網格中的最大正方形
13-3 長條圖中的最大長方形
13-4 網格中的最大長方形
13-5 合併長方形
13-6 不相交長方形的合併
Chapter14 計算
14-1 最大公因數
14-2 貝祖等式
14-3 二項式係數
14-4 快速求冪
14-5 質數
14-6 計算算術運算式
14-7 線性方程組
14-8 矩陣序列相乘
Chapter15 窮舉
15-1 鐳射路徑
15-2 精確覆蓋
15-3 數獨
15-4 排列枚舉
15-5 正確計算
除錯工具
參考文獻