當前進度,已學算法,未做題目

當前學習

Trie

已學算法

從初一開始算起,按照時間順序排序

算法簡稱 算法全稱 備註
高精度 比較基礎的算法
depth first search(DFS) 深度優先搜索 比較萬能的算法,缺點是速度慢
breadth first search(BFS) 廣度/寬度優先搜索 解決最優化問題
dynamic programmingDP 動態規劃 學得是一些比較基礎的dp
Merge Sort 歸併排序 O(nlogn) ,然而只是一個模板,但是可以求逆序對
graph theory(GT) 基礎圖論 普及圖論知識
floyd 插點法 O(n3)
Dijkstra 迪傑斯特拉 O(n2 )
Bellmanford 貝爾曼-福特算法 O(n2)SPFA 的前身
Shortest Path Fast Algorithm(SPFA) 隊列優化 O(kE) 隊列優化後的福特算法
prim 解決最小生成樹 O(n2) ,個人覺得和Dijkstra 很像
DisjointSet 並查集 在紀中學習,後又在學校複習
heap O(nlogn) ,在紀中學習,後在學校又複習,後面不會重複放出
RMQ 區間最值查詢 O(nlogn) ,在紀中學習,後在學校又複習
Segment  Tree 線段樹 O(nlogn) ,在紀中學習,後在學校又複習
Binary  Indexed  Trees 樹狀數組 O(nlogn) ,在紀中學習,後在學校又複習
Kruskal 庫魯思卡爾 O(mlogm+n) ,利用並查集
hash 哈希 最壞O(nm) ,絕大多數情況O(m)
Kosaraju 強聯通分量算法之一 O(n2) ,鄰接表優化後O(n+m)
Tarjian 強聯通分量算法之一 O(n+m)
Hungarian method 匈牙利算法 鄰接矩陣最壞O(n3) ,鄰接表O(mn)
離散化 排序後處理
Least Common Ancestors(LCA) 最近公共祖先 主要學了兩個算法
Tarjan 求最近公共祖先 O(n+m) ,注意這不是求強聯通分量的那個Tarjan
倍增求LCA O(n+mlogn)
Knuth Morris Pratt 字符串模式匹配 O(n+m)
Gcd 輾轉相除法及其證明 O(log(a+b))
Exgcd 擴展歐幾里德算法 O(log(a+b))
humdrum queue 單調隊列 O(n)
EdmondsKarp 增廣路算法 O(nm2)
Dinic O(n2m) ,匹配O(mn)
EdmondsKarp bfsSPFA O(knm2)
Topsort 拓撲排序 O(n+m)
樹形DP 樹形動態規劃 O()
Chairman  Tree 主席樹(可持久化線段樹) O(nlogn)
Trie 字典樹 紀中學習
AhoCorasick automaton AC 自動機 紀中學習
Suffix Array 後綴數組 紀中學習
Suffix Automaton(SAM) 後綴自動機 紀中學習
Persistent line segment tree 可持久花線段樹(主席數) 紀中學習
MinimumRepresentationAlgorithm 最小表示法 O(n) ,基於貪心
Trie 字典樹 字符串檢索結構

未做題目

備註:由於老師時不時放一些非此算法的題目在這個算法的$Word$文檔中,所以下面的題目分類並不完全正確,但大部分都是正確的

題目來源 題目名稱 題目分類
未知 Square country 離散
SSL-1685 USACO3.1 Shaping Regions 形成的區域 線段樹\離散\切割
zju 1128 亞特蘭蒂斯 離散
Vijos 1056 矩形覆蓋 離散
POJ 2777 Count Color 線段樹
POJ 2828 Buy Tickets 線段樹
POJ 2181 Jumping Cows 線段樹
POJ 3928 Ping pong 樹狀數組
HDU 3078 Network LCA
POJ 3401 String reduction KMP
BZOJ 3492 Binary Dodgeball KMP
POJ 2288 Islands and Bridges 狀壓dp
POJ 3714 Raid 分治
Luogu 3449 PALPalindromes Trie +HASH
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章