學習目標
C語言+STL+資料結構+演算法
C語言+STL略去不表,重點談談需要掌握的資料結構&&演算法
參照hzwer巨巨的博文:hzwer.com - Home
我按照競賽中考查的頻率及重要性,暫且將對列出的知識點的掌握程度的要求分成熟練掌握、基本掌握、一般掌握、一般瞭解、可看可不看這五個等級。
簡單列了一點
1.1 基本資料結構
1. 陣列(熟練掌握)
2. 連結串列,雙向連結串列(熟練掌握)
3. 佇列,單調佇列,雙端佇列(熟練掌握)
4. 棧,單調棧(熟練掌握)
1.2 中級資料結構
1. 堆(熟練掌握)
2. 並查集與帶權並查集(熟練掌握)
3. hash 表(基本掌握)
自然溢位
雙hash
1.3 高階資料結構
1. 樹狀陣列(基本掌握)
2. 線段樹,線段樹合併(基本掌握)
3. 平衡樹(一般掌握&&一般瞭解)
Treap 隨機平衡二叉樹
Splay 伸展樹
* Scapegoat Tree 替罪羊樹
4. 塊狀陣列,塊狀連結串列(一般掌握)
5.* 樹套樹(一般瞭解)
線段樹套線段樹
線段樹套平衡樹
* 平衡樹套線段樹
6.可並堆(一般瞭解)
左偏樹
*配對堆
7. *KDtree,*四分樹(一般瞭解)
1.4 可持久化資料結構
1. 可持久化線段樹(一般瞭解)
主席樹
2. * 可持久化平衡樹(一般瞭解)
3. * 可持久化塊狀陣列(一般瞭解)
1.5 字串相關演算法及資料結構
1. KMP(基本掌握)
2. AC 自動機(基本掌握)
3. 字尾陣列(一般瞭解)
4. *字尾樹(一般瞭解)
5. *字尾自動機(一般瞭解)
6. 字典樹 Trie(基本掌握)
7. manacher(一般瞭解)
1.6 圖論相關
1. 最小生成樹(基本掌握)
prim
kruskal
2. 最短路,次短路,K短路(基本掌握)
spfa
dijkstra
floyd
3. 圖的連通(一般掌握)
連通分量
割點,割邊
4. 網路流(一般掌握)
最大流
最小割
費用流
分數規劃
5. 樹相關(一般瞭解)
樹上倍增,公共祖先
樹鏈剖分
樹的分治演算法(點分治,邊分治,*動態?樹分治)
動態樹 (LCT,*樹分塊)
虛樹
*prufer編碼
7. 拓撲排序(熟練掌握)
8. 尤拉圖(一般掌握)
9. 二分圖(一般掌握)
*KM演算法
匈牙利演算法
1.7 數學相關
1. (擴充套件)歐幾里得演算法,篩法,快速冪(基本掌握)
斐蜀定理
更相減損術
2. 尤拉函式與*降冪大法(一般掌握)
3. 費馬小定理(一般掌握)
4. 排列組合(一般掌握)
lucas定理
5. 乘法逆元(一般掌握)
6. 矩陣乘法(基本掌握)
7. 數學期望與概率(基本掌握)
8. 博弈論(一般掌握)
sg函式
樹上刪邊遊戲
9. *拉格朗日乘子法(可看可不看)
10. 中國剩餘定理(一般掌握)
11. 線性規劃與網路流(一般掌握)
12. 單純型線性規劃(一般瞭解)
13. 辛普森積分(一般瞭解)
14. 模線性方程組(一般掌握)
15. 容斥原理與莫比烏斯反演(一般瞭解)
16. 置換群(一般瞭解)
17. 快速傅立葉變換(一般瞭解)
18. *大步小步法(BSGS),擴充套件BSGS(可看可不看)
1.8 動態規劃
1. 一般,揹包,狀壓,區間,環形,樹形,數位動態規劃(基本掌握)
記憶化搜尋
斯坦納樹
揹包九講
2. 斜率優化與* 四邊形不等式優化(一般瞭解)
3. 環 + 外向樹上的動態規劃(一般瞭解)
4. *插頭動態規劃(一般瞭解)
1.9 計算幾何
1. 計算幾何基礎(基本掌握)
2. 三維計算幾何初步(一般掌握)
3. *梯形剖分與*三角形剖分(一般瞭解)
4. 旋轉卡殼(一般瞭解)
5. 半平面交(一般瞭解)
6. pick定理(一般瞭解)
7. 掃描線(一般瞭解)
1.10 搜尋相關
1. bfs,dfs(熟練掌握)
2. A* 演算法(基本掌握)
3. 迭代加深搜尋,雙向廣搜(基本掌握)
1.11 特殊演算法
1. 莫隊演算法,*樹上莫隊(一般瞭解)
2. 模擬退火(可看可不看)
3. 爬山演算法(可看可不看)
4. 隨機增量法(可看可不看)
1.12 其它重要工具與方法
1.模擬與貪心(熟練掌握)
2. 二分,三分法(求偏導)(熟練掌握)
3. 分治,CDQ分治(一般瞭解)
4. 高精度(基本掌握)
5. 離線(熟練掌握)
6. ST表(一般掌握)
1.13 STL
1. map(熟練掌握)
2. priority_queue(熟練掌握)
3. set(熟練掌握)
4. bitset(熟練掌握)
5. rope(一般掌握)
1.14 非常見演算法
1. *朱劉演算法(可看可不看)
2. *弦圖與區間圖(可看可不看)
相關文章
- 深度學習之目標檢測與目標識別深度學習
- 深度學習之目標檢測深度學習
- Java學習的30個目標Java
- 學習JAVA的30個目標Java
- 目標檢測演算法學習演算法
- 2019年學習目標
- 近期的學習計劃和目標
- 目標學習與SCORM實踐薦ORM
- java的30個學習目標(轉)Java
- 52 個深度學習目標檢測模型深度學習模型
- Pytorch 目標檢測學習 Day 2PyTorch
- 學期目標
- 深度學習之影像目標檢測速覽深度學習
- web安全學習目標與計劃的制定Web
- 【海量資料學院】DBA學習方法論系列之:明確的學習目標
- 深度學習——學習目錄——學習中……深度學習
- 學習目錄
- 零基礎Python學習路線及階段學習目標【乾貨】Python
- 深度學習|基於MobileNet的多目標跟蹤深度學習演算法深度學習演算法
- 深度學習目標檢測(object detection)系列(六)YOLO2深度學習ObjectYOLO
- 深入學習OpenCV檢測及分割影象的目標區域OpenCV
- 深度學習目標檢測(object detection)系列(五) R-FCN深度學習Object
- 深度學習目標檢測(object detection)系列(一) R-CNN深度學習ObjectCNN
- 深度學習與CV教程(13) | 目標檢測 (SSD,YOLO系列)深度學習YOLO
- 深度學習“吃雞外掛”——目標檢測 SSD 實驗深度學習
- redis學習——目錄Redis
- Flutter學習目錄Flutter
- react學習目錄React
- oracle 學習目錄Oracle
- 基於OpenCV和YOLOv3深度學習的目標檢測OpenCVYOLO深度學習
- 深度學習目標檢測(object detection)系列(四) Faster R-CNN深度學習ObjectASTCNN
- 要成為Java高手需要注意的25個學習目標Java
- 目錄:SpringBoot學習目錄Spring Boot
- 馮梓軒新學期目標
- 音標學習
- Python學習目錄Python
- [總結]學習目錄
- UWP學習目錄整理