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