ACM基础知识及算法
生活随笔
收集整理的這篇文章主要介紹了
ACM基础知识及算法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
| ACM 算法 | ? | 難度 | |||
| 數(shù)據(jù)結(jié)構(gòu) | 棧 | 棧 | ? | ? | 1 |
| 單調(diào)棧 | ? | ? | ? | ||
| 隊列 | 一般隊列 | ? | ? | 1 | |
| 優(yōu)先隊列/單調(diào)隊列 | ? | ? | 1 | ||
| 循環(huán)隊列 | ? | ? | 2 | ||
| 雙端隊列 | ? | ? | 2 | ||
| 鏈表 | 一般鏈表 | ? | ? | 1 | |
| 循環(huán)鏈表 | ? | ? | 2 | ||
| 雙向鏈表 | ? | ? | 2 | ||
| 塊狀鏈表 | ? | ? | 2 | ||
| 十字鏈表 | ? | ? | 3 | ||
| 鄰接表/鄰接矩陣 | 鄰接表 | ? | ? | 1 | |
| 鄰接多重表 | ? | ? | 2 | ||
| Hash表(哈希表) | Hash表 | ? | ? | ? | |
| 字符串Hash | ? | ? | ? | ||
| 二叉樹 | 一般二叉樹 | ? | ? | 1 | |
| 遍歷二叉樹 | 先序遍歷二叉樹 | ? | 2 | ||
| 中序遍歷二叉樹 | ? | 2 | |||
| 后序遍歷二叉樹 | ? | 2 | |||
| Huffman樹(赫夫曼樹)(最優(yōu)二叉樹) | ? | ? | 1 | ||
| Huffman編碼(赫夫曼編碼) | ? | ? | 1 | ||
| 二叉查找樹/二叉排序樹/二叉搜索樹 | Treap | ? | 3 | ||
| 伸展樹 | ? | 3 | |||
| 線索二叉樹 | ? | ? | 4 | ||
| 平衡二叉樹 | ? | ? | 4 | ||
| 堆 | 大/小根堆(優(yōu)先隊列) | ? | ? | 2 | |
| 可并堆 | ? | ? | 3 | ||
| 左偏堆 | ? | ? | 3 | ||
| 線段樹 | 一維線段樹 | ? | ? | 2 | |
| 延遲標記 | ? | ? | 3 | ||
| 二維線段樹 | ? | ? | 3 | ||
| 掃描線 | ? | ? | 2 | ||
| 線段樹套平衡樹 | ? | ? | 5 | ||
| 主席樹/可持久化線段樹 | ? | ? | 6 | ||
| 樹狀數(shù)組 | 一維樹狀數(shù)組 | ? | ? | 2 | |
| N維樹狀數(shù)組 | ? | ? | 3 | ||
| 逆序?qū)栴} | ? | ? | 2 | ||
| 字符串 | KMP算法 | ? | ? | 2 | |
| 最小表示法 | ? | ? | 2 | ||
| 字典樹/Trie樹 | 靜態(tài)建樹 | ? | 2 | ||
| 動態(tài)建樹 | ? | 2 | |||
| 可持久化Trie樹 | ? | 3 | |||
| 后綴數(shù)組 | ? | ? | 5 | ||
| 后綴樹 | ? | ? | ? | ||
| 后綴自動機 | ? | ? | ? | ||
| Aho-Corasick自動機 | ? | ? | 6 | ||
| 并查集 | 并查集 | ? | ? | 1 | |
| 路徑壓縮 | ? | ? | 1 | ||
| 邊帶權(quán)并查集 | ? | ? | 1 | ||
| 分塊 | ? | ? | ? | 2 | |
| RMQ問題 | 樸素 | ? | ? | 1 | |
| 線段樹 | ? | ? | 2 | ||
| ST表 | ? | ? | 3 | ||
| RMQ標準算法 | ? | ? | 4 | ||
| 離散化 | ? | ? | ? | 2 | |
| 紅黑樹 | ? | ? | ? | 5 | |
| 跳躍表 | ? | ? | ? | 3 | |
| 圖論 | 搜索 | 深度優(yōu)先遍歷/DFS | 深度優(yōu)先遍歷/DFS | ? | 2 |
| DFS序 | ? | 1 | |||
| 迭代加深DFS(ID-DFS) | ? | 3 | |||
| 雙向DFS | ? | 2 | |||
| 廣度優(yōu)先遍歷/BFS | 廣度優(yōu)先遍歷/BFS | ? | 2 | ||
| 雙端隊列BFS | ? | 2 | |||
| 優(yōu)先隊列BFS | ? | 2 | |||
| 多起點BFS | ? | 2 | |||
| 雙重BFS | ? | 2 | |||
| 雙向BFS | ? | 2 | |||
| 剪枝 | ? | ? | 3 | ||
| 拓撲排序 | ? | ? | 2 | ||
| 狀態(tài)壓縮 | ? | ? | 1 | ||
| A*算法 | ? | ? | ? | ||
| IDA*算法 | ? | ? | ? | ||
| 記憶化搜索 | ? | ? | 3 | ||
| 強連通分量 | 強連通分量 | Tarjan算法 | ? | 3 | |
| Korasaju算法 | ? | 3 | |||
| 雙連通分量 | ? | ? | ? | ||
| 強連通分支及其縮點 | ? | ? | ? | ||
| 圖的割邊和割點 | ? | ? | ? | ||
| 2-SAT問題 | ? | ? | ? | ||
| 歐拉路問題 | 歐拉路徑 | ? | 2 | ||
| 歐拉回路 | ? | 2 | |||
| 哈密頓回路 | ? | ? | ? | ||
| 最小生成樹 | Prim算法 | ? | ? | 2 | |
| Kruskal算法(稀疏圖) | ? | ? | 2 | ||
| Sollin算法 | ? | ? | 3 | ||
| 次小生成樹 | ? | ? | 3 | ||
| 最小有向生成樹 | ? | ? | ? | ||
| 第k小生成樹 | ? | ? | 3 | ||
| 最優(yōu)比例生成樹 | ? | ? | ? | ||
| 最小樹形圖 | ? | ? | ? | ||
| 最小瓶頸生成樹 | 最小瓶頸生成樹 | ? | ? | ||
| 每對結(jié)點間最小瓶頸路 | ? | ? | |||
| 最小瓶頸路 | ? | ? | ? | ||
| 最小度限制生成樹 | ? | ? | ? | ||
| 增量最小生成樹 | ? | ? | ? | ||
| 平面點的歐幾里德最小生成樹 | ? | ? | ? | ||
| 平面點的曼哈頓最小生成樹 | ? | ? | ? | ||
| 最小平衡生成樹 | ? | ? | ? | ||
| 最短路徑 | 單源最短路徑 | 有向無環(huán)圖的最短路徑 | 拓撲排序 | 2 | |
| 非負權(quán)值加權(quán)圖的最短路徑 | Dijkstra算法 | 2 | |||
| Dijkstra算法(二叉堆優(yōu)化) | 2 | ||||
| 含負權(quán)值加權(quán)圖的最短路徑 | Bellman-Ford算法 | 2 | |||
| SPFA算法 | 2 | ||||
| 全源最短最短路徑 | Floyd算法 | ? | 1 | ||
| Johnson算法 | ? | 2 | |||
| 次短路徑 | ? | ? | ? | ||
| 第k短路徑 | ? | ? | ? | ||
| 差分約束系統(tǒng) | ? | ? | 3 | ||
| 平面點對的最短路徑(優(yōu)化) | ? | ? | ? | ||
| 雙標準限制最短路徑 | ? | ? | ? | ||
| 環(huán) | 環(huán)判定 | ? | ? | 2 | |
| 負環(huán)判定 | Bellman-Ford算法 | ? | 2 | ||
| SPFA算法 | ? | 2 | |||
| 網(wǎng)絡(luò)流 | 最大流問題 | 增廣路算法 | 增廣路定理 | 1 | |
| Ford-Fulkerson算法 | 3 | ||||
| Ford-Fulkerson迭加算法 | 3 | ||||
| Edmond-Karp算法 | 3 | ||||
| Dinic算法 | 3 | ||||
| ISAP算法/最短增廣路算法 | 3 | ||||
| 預(yù)流推進算法 | ? | ? | |||
| ? | 多源多匯問題 | ? | ? | ||
| ? | 無源無匯有容量下界網(wǎng)絡(luò)的可行流 | ? | ? | ||
| ? | 有容量下界網(wǎng)絡(luò)的s-t最大/最小流 | ? | ? | ||
| ? | 節(jié)點有限制的網(wǎng)絡(luò)流 | ? | ? | ||
| 最小割最大流定理 | ? | ? | ? | ||
| 最小費用最大流問題 | 容量不固定的s-t最小費用流 | ? | ? | ||
| 含負費用的最小費用最大流 | ? | ? | |||
| 費用與流量平方成正比的最小流 | ? | ? | |||
| 二分圖匹配 | 二分圖判定 | ? | ? | 2 | |
| 二分圖最大匹配 | 匈牙利算法 | ? | 2 | ||
| Konig定理 | ? | ? | 1 | ||
| 二分圖最小點覆蓋 | 匈牙利算法 | ? | 2 | ||
| 二分圖最小邊覆蓋 | ? | ? | ? | ||
| 二分圖最佳完美匹配 | Kuhn-Munkres算法 | ? | ? | ||
| 二分圖完全匹配 | Kuhn-Munkres算法 | ? | ? | ||
| 二分圖多重匹配 | ? | ? | ? | ||
| 二分圖帶權(quán)最大匹配 | Kuhn-Munkres算法 | ? | ? | ||
| 二分圖最大獨立集 | ? | ? | ? | ||
| 最大閉合子圖 | ? | ? | ? | ||
| 最大密度子圖 | ? | ? | ? | ||
| 公平分配問題 | ? | ? | ? | ||
| 區(qū)間k覆蓋問題 | ? | ? | ? | ||
| 有向無環(huán)圖(DAG)的最小路徑覆蓋 | DAG的最小不相交路徑覆蓋 | ? | 2 | ||
| DAG的最小可相交路徑覆蓋 | ? | ? | |||
| 樹的直徑 | 樹形DP | ? | ? | 3 | |
| BFS | ? | ? | 2 | ||
| 基環(huán)樹 | ? | ? | ? | ? | |
| 最近公共祖先 | 向上標記法 | ? | ? | ? | |
| 樹上倍增 | ? | ? | 3 | ||
| Tarjan 算法 | ? | ? | 2 | ||
| LCA 轉(zhuǎn) RMQ | ? | ? | 3 | ||
| 弦圖 | ? | ? | ? | ? | |
| 穩(wěn)定婚姻問題 | ? | ? | ? | ? | |
| 動態(tài)規(guī)劃 | 四邊形不等式理論 | ? | ? | ? | ? |
| 不完全狀態(tài)記錄 | 青蛙過河問題 | ? | ? | ? | |
| 區(qū)間DP | ? | ? | ? | ||
| 背包問題 | 0-1背包 | ? | ? | 2 | |
| 完全背包 | ? | ? | 2 | ||
| 分組背包 | ? | ? | ? | ||
| 多重背包 | ? | ? | ? | ||
| 判定性背包問題 | ? | ? | ? | ||
| 帶附屬關(guān)系的背包問題 | ? | ? | ? | ||
| + -1背包問題 | ? | ? | ? | ||
| 雙背包求最優(yōu)值 | ? | ? | ? | ||
| 構(gòu)造三角形問題 | ? | ? | ? | ||
| 帶上下界限制的背包問題(012背包) | ? | ? | ? | ||
| 線性的動態(tài)規(guī)劃問題 | 積木游戲問題 | ? | ? | ? | |
| 決斗(判定性問題) | ? | ? | ? | ||
| 圓的最大多邊形問題 | ? | ? | ? | ||
| 統(tǒng)計單詞個數(shù)問題 | ? | ? | ? | ||
| 棋盤分割 | ? | ? | ? | ||
| 日程安排問題 | ? | ? | ? | ||
| 最小逼近問題(求出兩數(shù)之比最接近某數(shù)/兩數(shù)之和等于某數(shù)等等) | ? | ? | ? | ||
| 方塊消除游戲(某區(qū)間可以連續(xù)消去求最大效益) | ? | ? | ? | ||
| 資源分配問題 | ? | ? | ? | ||
| 數(shù)字三角形問題 | ? | ? | ? | ||
| 漂亮的打印 | ? | ? | ? | ||
| 郵局問題與構(gòu)造答案 | ? | ? | ? | ||
| 最高積木問題 | ? | ? | ? | ||
| 兩段連續(xù)和最大 | ? | ? | ? | ||
| 2次冪和問題 | ? | ? | ? | ||
| N個數(shù)的最大M段子段和 | ? | ? | ? | ||
| 交叉最大數(shù)問題 | ? | ? | ? | ||
| 判定性問題的DP(如判定整除、判定可達性等) | 模K問題的DP | ? | ? | ? | |
| 特殊的模K問題,求最大(最小)模K的數(shù) | ? | ? | ? | ||
| 變換數(shù)問題 | ? | ? | ? | ||
| 單調(diào)性優(yōu)化的動態(tài)規(guī)劃 | 1-SUM問題 | ? | ? | ? | |
| 2-SUM問題 | ? | ? | ? | ||
| 序列劃分問題(單調(diào)隊列優(yōu)化) | ? | ? | ? | ||
| 剖分問題(多邊形剖分/石子合并/圓的剖分/乘積最大) | 凸多邊形的三角剖分問題 | ? | ? | ? | |
| 乘積最大問題 | ? | ? | ? | ||
| 多邊形游戲(多邊形邊上是操作符,頂點有權(quán)值) | ? | ? | ? | ||
| 石子合并(N^3/N^2/NLogN各種優(yōu)化) | ? | ? | ? | ||
| 貪心的動態(tài)規(guī)劃 | 最優(yōu)裝載問題 | ? | ? | ? | |
| 部分背包問題 | ? | ? | ? | ||
| 乘船問題 | ? | ? | ? | ||
| 貪心策略 | ? | ? | ? | ||
| 雙機調(diào)度問題Johnson算法 | ? | ? | ? | ||
| 區(qū)間DP | ? | ? | ? | ? | |
| 數(shù)位DP | ? | ? | ? | ? | |
| 狀態(tài)DP | 牛仔射擊問題(博弈類) | ? | ? | ? | |
| 哈密頓路徑的狀態(tài)dp | ? | ? | ? | ||
| 兩支點天平平衡問題 | ? | ? | ? | ||
| 一個有向圖的最接近二部圖 | ? | ? | ? | ||
| 樹型DP | 完美服務(wù)器問題(每個節(jié)點有3種狀態(tài)) | ? | ? | ? | |
| 小胖守皇宮問題 | ? | ? | ? | ||
| 網(wǎng)絡(luò)收費問題 | ? | ? | ? | ||
| 樹中漫游問題 | ? | ? | ? | ||
| 樹上的博弈 | ? | ? | ? | ||
| 樹的最大獨立集問題 | ? | ? | ? | ||
| 樹的最大平衡值問題 | ? | ? | ? | ||
| 構(gòu)造樹的最小環(huán) | ? | ? | ? | ||
| 數(shù)學(xué) | 數(shù)論 | 積性函數(shù) | ? | ? | 1 |
| 佩爾方程 | ? | ? | 3 | ||
| 同余 | 同余定理 | ? | 1 | ||
| 費馬小定理 | ? | 1 | |||
| 歐拉定理 | ? | 1 | |||
| 歐拉定里推論 | ? | 1 | |||
| 擴展歐幾里得算法 | ? | 1 | |||
| 中國剩余定理 | ? | 1 | |||
| 乘法逆元 | ? | 1 | |||
| 素數(shù) | 歐幾里得定理 | ? | 1 | ||
| 樸素法 | ? | 1 | |||
| 篩選法 | Eratosthenes篩選法 | 2 | |||
| 線性篩 | 2 | ||||
| 米勒測試法 | ? | 3 | |||
| 約數(shù)/因數(shù)/因子 | 算術(shù)基本定理 | ? | 1 | ||
| 算術(shù)基本定理的推論 | ? | 1 | |||
| 因數(shù)分解 | 試除法 | 1 | |||
| 倍數(shù)法 | 1 | ||||
| 質(zhì)因數(shù)分解 | 試除法 | 1 | |||
| 最大公約數(shù)/最大公因數(shù) | 歐幾里得算法/輾轉(zhuǎn)相除法 | 1 | |||
| 更相減損術(shù) | 1 | ||||
| 最小公倍數(shù) | ? | 1 | |||
| 歐拉函數(shù) | Eratosthenes篩選法 | 2 | |||
| 線性篩 | 2 | ||||
| 連分數(shù)逼近 | ? | ? | ? | ||
| 循環(huán)群生成元 | ? | ? | ? | ||
| 進制位 | ? | ? | 1 | ||
| 矩陣 | 矩陣乘法 | ? | ? | 1 | |
| 矩陣快速冪 | ? | ? | 1 | ||
| 矩陣轉(zhuǎn)置 | ? | ? | 1 | ||
| 組合數(shù)學(xué) | 排列組合 | 排列數(shù) | ? | 1 | |
| 組合數(shù) | 組合數(shù)求法 | 1 | |||
| 組合數(shù)性質(zhì) | 1 | ||||
| 楊輝三角 | 1 | ||||
| 二項式定理 | 1 | ||||
| 加法原理 | ? | 1 | |||
| 乘法原理 | ? | 1 | |||
| 容斥原理 | ? | ? | 1 | ||
| 遞推關(guān)系和生成函數(shù) | ? | ? | ? | ||
| Lucas定理 | ? | ? | ? | ||
| Polya計數(shù)法 | Polya計數(shù)公式 | ? | ? | ||
| Burnside定理 | ? | ? | |||
| N皇后構(gòu)造解 | ? | ? | 2 | ||
| 幻方的構(gòu)造 | ? | ? | ? | ||
| Catalan數(shù)列 | ? | ? | ? | ||
| Stirling數(shù)列 | ? | ? | ? | ||
| 斐波拉契數(shù) | ? | ? | 1 | ||
| 調(diào)和數(shù) | ? | ? | ? | ||
| 連分數(shù) | ? | ? | ? | ||
| MoBius | MoBius函數(shù) | ? | ? | ||
| MoBius反演 | ? | 5 | |||
| 偏序關(guān)系理論 | ? | ? | ? | ||
| 計算幾何 | 基本公式 | 叉乘 | ? | 1 | |
| 點乘 | ? | 1 | |||
| 常見形狀的面積、周長、體積公式 | ? | 1 | |||
| 坐標離散化 | ? | 2 | |||
| 線段 | 判斷兩線段(一直線、一線段)是否相交 | ? | 1 | ||
| 求兩線段的交點 | ? | 1 | |||
| 多邊形 | 判定凸多邊形,頂點按順時針或逆時針給出,(不)允許相鄰邊共線 | ? | |||
| 判點在凸多邊形內(nèi)或多邊形邊上,頂點按順時針或逆時針給出 | ? | ||||
| 判點在凸多邊形內(nèi),頂點按順時針或逆時針給出,在多邊形邊上返回0 | ? | ||||
| 判點在任意多邊形內(nèi),頂點按順時針或逆時針給出 | ? | ||||
| 判線段在任意多邊形內(nèi),頂點按順時針或逆時針給出,與邊界相交返回1 | ? | ||||
| 多邊形重心 | ? | ? | |||
| 多邊形切割(半平面交) | ? | ? | |||
| 掃描線算法 | ? | ? | |||
| 多邊形的內(nèi)核 | ? | ? | |||
| 三角形 | 內(nèi)心 | ? | 1 | ||
| 外心 | ? | 1 | |||
| 重心 | ? | 1 | |||
| 垂心 | ? | 1 | |||
| 費馬點 | ? | ? | |||
| 圓 | 判直線和圓相交,包括相切 | ? | 1 | ||
| 判線段和圓相交,包括端點和相切 | ? | ? | |||
| 判圓和圓相交,包括相切 | ? | ? | |||
| 計算圓上到點p最近點,如p與圓心重合,返回p本身 | ? | ||||
| 計算直線與圓的交點,保證直線與圓有交點 | ? | ? | |||
| 計算線段與圓的交點可用這個函數(shù)后判點是否在線段上 | ? | ||||
| 計算圓與圓的交點,保證圓與圓有交點,圓心不重合 | ? | ||||
| 計算兩圓的內(nèi)外公切線 | ? | ? | |||
| 計算線段到圓的切點 | ? | ? | |||
| 點集最小圓覆蓋 | ? | ? | |||
| 球 | ? | ? | ? | ||
| 可視圖的建立 | ? | ? | ? | ||
| 對踵點 | ? | ? | ? | ||
| 經(jīng)典問題 | 平面凸包 | ? | ? | ||
| 三維凸包 | ? | ? | |||
| Delaunay剖分/Voronoi圖 | ? | ? | |||
| 計算方法 | 二分法 | 二分法求解單調(diào)函數(shù)相關(guān)知識 | ? | 1 | |
| 用矩陣加速的計算 | ? | 1 | |||
| 迭代法 | ? | ? | ? | ||
| 三分法 | 一般三分法 | ? | ? | ||
| 三分法求解單峰(單谷)的極值 | ? | ? | |||
| 快速冪 | 數(shù)學(xué)快速冪 | ? | 1 | ||
| 矩陣快速冪 | ? | 2 | |||
| 解線性方程組 | LUP分解 | ? | ? | ||
| 高斯消元 | ? | ? | |||
| 解模線性方程組 | ? | ? | ? | ||
| 定積分計算 | ? | ? | ? | ||
| 多項式求根 | ? | ? | ? | ||
| 周期性方程 | ? | ? | ? | ||
| 線性規(guī)劃 | ? | ? | ? | ||
| 快速傅立葉變換 | ? | ? | ? | ||
| 隨機算法 | ? | ? | 1 | ||
| 0/1分數(shù)規(guī)劃 | ? | ? | ? | ||
| 迭代逼近 | ? | ? | ? | ||
| 矩陣法 | ? | ? | ? | ||
| 概率論 | 全概率公式 | ? | ? | 1 | |
| 數(shù)學(xué)期望 | ? | ? | 1 | ||
| 博弈論 | SG函數(shù) | ? | ? | 3 | |
| 極大極小過程 | ? | ? | 3 | ||
| Nim問題 | ? | ? | 2 | ||
總結(jié)
以上是生活随笔為你收集整理的ACM基础知识及算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2019年华南理工大学程序设计竞赛(春季
- 下一篇: Serval and Bus