第一講 基礎算法
快速排序
歸並排序
二分
高精度
前綴和與差分
雙指針算法
\(AcWing\) \(799\). 最長連續不重復子序列
位運算
\(AcWing\) \(801\). 二進制中\(1\)的個數
離散化
區間合並
第二講 數據結構
單鏈表
雙鏈表
棧
隊列
單調棧
單調隊列
KMP
\(AcWing\) \(831\). \(KMP\)字符串
Trie
\(AcWing\) \(835\). \(Trie\)字符串統計
並查集
堆
哈希表
第三講 搜索與圖論
DFS
\(AcWing\) \(843\). \(n\)-皇后問題
BFS
樹與圖的深度優先遍歷
樹與圖的廣度優先遍歷
拓撲排序
Dijkstra
\(AcWing\) \(849\). \(Dijkstra\)求最短路\(I\)
\(AcWing\) \(850\). \(Dijkstra\)求最短路\(II\)
bellman-ford
spfa
\(AcWing\) \(851\). \(spfa\)求最短路
\(AcWing\) \(852\). \(spfa\)判斷負環
Floyd
\(AcWing\) \(854\). \(Floyd\)求最短路
Prim
\(AcWing\) \(858\). \(Prim\)算法求最小生成樹
Kruskal
\(AcWing\) \(859\). \(Kruskal\)算法求最小生成樹
染色法判定二分圖
匈牙利算法[月佬算法]
第四講 數學知識
質數
約數
歐拉函數
快速冪
擴展歐幾里得算法
中國剩余定理
高斯消元
\(AcWing\) \(883\). 高斯消元解線性方程組
\(AcWing\) \(884\). 高斯消元解異或線性方程組
求組合數
容斥原理
博弈論
\(AcWing\) \(891\). \(Nim\) 游戲
\(AcWing\) \(892\). 台階-\(Nim\)游戲
\(AcWing\) \(893\). 集合-\(Nim\)游戲
\(AcWing\) \(894\). 拆分-\(Nim\)游戲
第五講 動態規划
背包問題
線性DP
\(AcWing\) \(896\). 最長上升子序列 II
區間DP
計數類DP
數位統計DP
狀態壓縮DP
\(AcWing\) \(91\). 最短\(Hamilton\)路徑
樹形DP
\(AcWing\) \(1049\). 大盜阿福 [沒有上司的舞會 引入題]
記憶化搜索
第六講 貪心
區間問題
\(AcWing\) \(905\). 區間選點
思路:盡可能讓選擇的點跨更多的區間。
\(AcWing\) \(908\). 最大不相交區間數量
思路:最大不相交區間數量與區間選點是一樣的代碼,因為如果某些線段有公共的點,那么它們只能取一個,換句話說,就是有距離無交叉的區間個數。