oi training 知識體系結構
初級
1.1 c語言基礎
1.1.1 c語言程式結構(a+b problem)
1.1.2 變數,常量,資料型別,輸入與輸出
1.1.3 條件語句
1.1.4 迴圈語句
1.1.5 陣列
1.1.6 字元陣列、字串
1.1.7 指標
1.1.8 共同體、結構體
1.1.9 函式
1.1.10 過關練習題
中級
2.1 深度優先搜尋
2.1.1 棧與遞迴函式
2.1.2 深搜樹模型與回溯
2.2 寬度優先搜尋
2.2.1 鍊錶與佇列
2.2.2 寬搜樹模型
2.2.3 搜尋過關練習題.
2.3 排序問題
2.3.1氣泡排序,選擇排序,插入排序
2.3.2 二分查詢
2.3.3 快速排序
2.3.4 歸併排序
2.3.5 桶排序
2.3.6 排序過關練習
2.4 貪心、模擬
2.4.1貪心策略與最優性原理
2.4.2 經典模擬
2.4.3字串模擬
2.4.4 過關練習
高階
3.1 動態規劃
3.1.1 動歸思想與分析過程(遞推法,狀態,階段,決策,邊界)
3.1.2 揹包模型
3.1.3 子串行模型
3.1.4 區間模型
3.1.5 資源分配模型
3.1.6 滾動陣列
3.1.7 記憶化搜尋
3.1.8 動態規劃過關練習
3.2 基礎數論
3.2.1 整數的性質
3.2.1 質數與整除
3.2.3 同餘定理
3.2.4 基礎數論過關練習
3.3高精度
3.3.2 大數加減法
3.3.3 大數乘法
3.3.4 大數除法與取餘
3.3.5 高精度過關練習
3.4 樹與森林
3.4.1 樹和森林的特徵與區別
3.4.2 樹、森林的儲存方式
3.4.3 樹、二叉樹的遍歷
3.4.4 哈夫曼樹
3.4.5 鍵樹
3.4.5 並查集,lca
3.4.6 樹模型過關練習
3.5 圖
3.5.1 圖的概念與性質
3.5.2 圖的儲存(鄰接矩陣,邊表等)
3.5.3 連通分量與強連通分量
3.5.4 生成樹問題(最小,次小,生成樹計數)
3.5.5 最短路徑(單源,多源各種演算法)
3.5.6 拓撲排序
3.6雜湊表
3.6.1雜湊表的作用(標記陣列,快速定位,優化程式的利器)
3.6.2雜湊表的性質(雜湊衝突)
3.6.3雜湊表與字串
3.7 位運算與常數優化
3.7.1 位運算應用舉例
3.7.2 常數優化舉例
3.8 c++ stl模板的應用(各種常用的資料結構的用法介紹和演示)
3.8.1 algorithm
3.8.2 list
精英級
4.1 搜尋與剪枝
4.1.1 最優性剪枝
4.1.2 a*搜尋,啟發式搜尋,雙向搜尋
4.1.2 迭代加深搜尋
4.1.3 模擬退火
4.2 優先佇列
4.2.1 二叉堆
4.2.2 可並優先佇列(左偏樹,二項堆)
4.3 動態規劃
4.3.1狀態壓縮動態規劃
4.3.2 決策單調性與斜率優化(單調佇列)
4.3.4四邊形不等式優化
4.3.5樹型動態規劃
4.3.6迭代型動態規劃
4.3.7 高階資料結構優化
4.4 線段樹,樹狀陣列
4.4.1 樹狀陣列的概念與原理
4.4.2 樹狀陣列的應用
4.4.3 線段樹的原理與模型
4.4.4 線段樹的標記遺傳
4.4.5 線段樹的應用(區間計數,區間覆蓋,動態規劃優化等,越詳細越好)
4.5 幾何
4.5.1 解析幾何,圖形與方程
4.5.2 計算幾何,向量運算,叉積。
4.5.3 凸包
4.5.4 圓並
4.5.5 半平面交
4.5.6 幾何經典問題
4.6 經典數論
4.6.1 尤拉函式
4.6.2 不定方程
4.6.3 中國剩餘定理
4.6.4 數論經典問題
4.7 線性代數
4.7.1 矩陣
4.7.2 高斯消元與行列式
4.7.3 模線性方程組
4.7.4 矩陣乘法與遞推關係
4.8 二叉查詢樹
4.8.1 概念與性質
4.8.2 平衡樹的性質與模型
4.8.3 b樹的模型與應用
4.8.4 紅黑樹的模型與應用
4.8.5 treap的模型與應用
4.8.6 伸展樹(splay)的模型與應用
4.9 串問題
4.9.1 模式匹配
4.9.2 ac自動機
4.9.3 擴充套件kmp演算法
4.9.4 字尾樹
4.9.5 字尾陣列
4.10 網路流
4.10.1 概念與演算法(dinic,sap等)
4.10.2 最大流與最小割
4.10.3 有費用的網路流
4.10.4 有流量上下界的網路流(zkw等)
4.11 二分圖
4.11.1 最大匹配
4.11.2 最大權匹配
4.12 組合數學
4.12.1 鴿籠原理與ramsey定理
4.12.2 排列組合與容斥原理
4.12.3 群論與置換群
4.12.4 burnside引理與pólya定理
4.12.5 數列與母函式
4.13 遊戲與博弈
4.13.1 最小最大原理
4.13.2 nim遊戲與sg定理
4.13.3 其他模型
大師級
5.1 動態規劃狀態設計
5.1.1 基於連通性的狀態壓縮
5.2 樹的分治
5.2.1 基於邊的分治
5.2.2 基於點的分治
5.2.3 基於鏈的分治
5.3 各種高階資料結構
5.3.1 動態樹
5.3.2 劃分樹
5.3.3 樹鏈剖分
5.3.4 歸併樹
5.3.5 帶花樹
5.3.6 塊鏈
5.3.7 dancing link
5.4 高階資料結構巢狀
5.4.1 線段樹巢狀
5.4.2 各種樹套樹
5.5 快速傅利葉變換(fft)
5.5.1 快速多項式乘法
5.5.2 單位模根
5.6 各種數論(自行挖掘)
不平等博弈
差約分束
擴充套件歐幾里德
行列式多重積分
離散對數
原根置換群
母函式dance link
動態仙人球
遺傳演算法
fft高斯消元
最小表示法
基於母函式的優化
分層重構圖
各種分塊
單純形法
polya定理
期望類問題
………知識是不斷完善和無限的 !
這裡還有一張圖
canvas知識體系
把canvas想象成乙個畫板 乙個繪製狀態,可模擬畫圖工具中的工具欄 繪圖元素,包括簡單的圖形,線條,複雜的組合,和 繪製模式,比如畫板中的圖形存在繪製的先後順序,而存在重疊部分,該如何顯示存在重疊的圖形,這是繪製模式要解決的問題 裁切路徑,只讓畫板的部分可見 畫素操作,操作imagedata的畫素...
android 知識體系
1.雙鎖單例,為什麼要加 volatile?volatile就牽扯到指令重排序的問題了。要理解為什麼要加volatile,首先要理解new singleton 做了什麼。new乙個物件有幾個步驟。1.看class物件是否載入,如果沒有就先載入class物件,2.分配記憶體空間,初始化例項,3.呼叫建...
Vue 知識體系
由vue官網可知,vue大致分為如下目錄 基礎在基礎中,簡單的介紹了vue在本地記事本方式開發的整個過程,學過該內容,可以通過記事本簡單的進行開發,但是僅限於單個頁面之間,且均為簡單的使用。過渡 動畫 在該單元中,詳細的講述了vue元件的動畫內容,當乙個 所有功能全部搞定之後,就該使用到該單元內容,...