天天看點

常用/常考算法總結

轉自tangjz的部落格...

基礎算法

模拟

搜尋

  1. 廣度優先搜尋(BFS)
  2. 優化:雙向BFS
  3. 深度優先搜尋(DFS)
  4. 優化:折半DFS
  5. 疊代加深搜尋(IDS)
  6. 啟發式搜尋(Astar)
  7. 優化:IDAstar
  8. 優化:剪枝、位運算
排序
  1. 冒泡排序/選擇排序
  2. 基數排序/桶排序
  3. 計數排序
  4. 插入排序/希爾排序
  5. 快速排序
  6. 歸并排序/求逆序對數
  7. 堆排序

貪心

分治

  1. 二分/三分/n分
  2. cdq分治

倍增/ST

離散化

二分答案

快速幂/十進制快速幂

基礎數學

數列求和

泰勒展開

矩陣

  1. 矩陣乘法
  2. 高斯消元
  3. 判斷線性相關

Catalan數

組合數學

  1. 加法原理/乘法原理
  2. 組合數遞推/楊輝三角
  3. 二項式定理
  4. 抽屜原理/鴿籠原理
  5. Lucas定理
  6. 容斥原理

數論

質數判定/Miller-Rabin檢驗

分解質因數/求約數

歐幾裡得算法/輾轉相除法

擴充歐幾裡得算法/乘法逆元/二進制一次同餘方程

線性預處理1-n乘法逆元

素數篩

  1. 埃拉托斯特尼篩
  2. 歐拉篩

歐拉函數

莫比烏斯函數

費馬小定理

威爾遜定理

中國剩餘定理/孫子定理

二次剩餘/Cipolla's Algorithm

原根

離散對數/Baby-Step Giant-Step

群論

置換

Burnside引理

Polya定理

動态規劃

背包dp
  1. 01背包
  2. 完全背包
  3. 多重背包
  4. 混合背包
  5. 二維背包
  6. 分組背包
  7. 樹形背包
  8. 泛型背包
按次元
  1. 線性dp
  2. 區間dp
  3. 高維dp
按類型
  1. 劃分dp
  2. 最長上升子序列(LIS)
  3. 最長公共子序列(LCS)
  4. 有向無環圖(DAG)上dp
  5. (基于聯通性的)狀态壓縮dp
優化
  1. 滾動數組
  2. 字首和
  3. 四邊形不等式
  4. 斜率優化
  5. 位運算
  6. 資料結構
  7. cdq分治
技巧
  1. 記憶化搜尋
  2. 順推/逆推
  3. 最小表示法

圖論

連通性
  1. 圖的周遊
  2. 拓撲排序
  3. 強聯通分量
  4. 割點、橋、雙聯通分量/tarjan算法
  1. 最近公共祖先(LCA)/tarjan算法
  2. 樹的中心/直徑
  3. 樹的重心
  4. 樹的同構
最短路
  1. 多源最短路徑(APSP)/floyd
  2. 最小環
  3. 傳遞閉包
  4. 單源最短路徑(SSSP)/queue+bellman-ford/heap+dijkstra
生成樹
  1. 最小生成樹
  2. 最小比例生成樹
  3. 最小瓶頸樹
二分圖
  1. 二分圖驗證
  2. 二分圖染色
  3. 最大比對/匈牙利算法
  4. 最優比對/KM算法
網絡流
  1. dinic算法
  2. isap算法
  3. 預流推進算法
  4. 技巧:拆點
  5. 優化:合點/合邊
  6. 優化:線段樹

資料結構

高精度
  1. 高精度對低精度加減乘除取餘
  2. 高精度對高精度加減乘除取餘
  3. 優化:快速傅裡葉變換
連結清單
  1. 單雙向連結清單
  2. 塊狀連結清單
  3. 鄰接表/邊表

隊列

  1. 循環隊列
  2. 優先隊列/最小二叉堆
  3. 左偏樹
  4. Fibonacci堆
  1. 二叉查找樹
  2. 堆(同上)
  3. 笛卡爾樹
  4. 樹狀數組
  5. 線段樹
  6. 拓展:動态線段樹、四分樹
  7. 重量平衡樹
  8. 伸展樹

并查集

哈希表(Hash)

自動機

字元串

  1. Trie樹
  2. KMP
  3. Manacher
  4. AC自動機(Aho-Corasick Automaton)
  5. 字尾數組/字尾樹/字尾自動機/字尾平衡樹等
動态樹
  1. 樹鍊剖分/樹塊剖分
  2. Link-Cut Tree/Euler-Tour tree

計算幾何

平面幾何/立體幾何/解析幾何/參數方程

判斷點與多邊形關系(轉角法/掃描線法)

多邊形面積交/面積并

極角排序

凸包/旋轉卡殼

半平面交

三角剖分/Voronoi圖

博弈論

SG組合遊戲/SG函數

Bash遊戲/Wythoff遊戲/NIM遊戲

對抗搜尋

機率論

完全機率

Bayes定理

Markov過程

Chebyshev定理

雜項

分塊

随機調整/模拟退火/随機爬山

單純形法

轉載于:https://www.cnblogs.com/lowsfish/p/4297895.html