演算法之從入門到放棄

2021-10-16 17:30:07 字數 2657 閱讀 7286

該系列筆記意在學習總結資料結構和演算法相關知識點、分享競賽和考研/工作面試中涉及的題目。

該系列文章不定期更新,預計在2021-06-01前全部完成。

以下是相關鏈結。如有錯誤,歡迎指正。

1 基礎演算法

1.1 列舉/遍歷

1.2 模擬

1.3 遞迴&分治

1.4 貪心

1.5 排序

1.5.1 選擇排序

1.5.2 氣泡排序

1.5.3 插入排序

1.5.4 計數排序

1.5.5 基數排序

1.5.6 快速排序

1.5.7 歸併排序

1.5.8 堆排序

1.5.9 桶排序

1.5.10 希爾排序

1.5.11 錦標賽排序/樹形選擇排序

1.6 字首和&差分

1.7 二分

1.8 倍增

2 搜尋演算法

2.1 dfs

2.2 bfs

2.3 雙向搜尋

2.4 啟發式搜尋

2.5 a-star

2.6 迭代加深搜尋

2.7 ida*

2.8 回溯法

2.9 dancing links

3 動態規劃

3.1 相關概念

3.2 記憶化搜尋

3.3 揹包dp

3.4 區間dp

3.5 dag上的dp

3.6 樹形dp

3.7 狀壓dp

3.8 數字dp

3.9 插頭dp

3.10 計數dp

3.11 動態dp

3.12 概率dp

3.13 dp優化

3.13.1 單調佇列/單調棧優化

3.13.2 斜率優化

3.13.2 四邊形不等式優化

3.13.2 狀態設計優化

4 字串

4.1 字串相關基礎知識

4.2 字串匹配

4.3 字串雜湊

4.4 字典樹 (trie)

4.5 字首函式與 kmp 演算法

4.6 boyer-moore演算法

4.7 z 函式(擴充套件 kmp)

4.8 自動機

4.9 ac 自動機

4.10 字尾陣列 (sa)

4.11 字尾自動機 (sam)

4.12 廣義字尾自動機

4.13 字尾樹

4.14 manacher

4.15 回文樹

4.16 序列自動機

4.17 最小表示法

4.18 lyndon 分解

5 數學

5.1 符號

5.2 複數

5.2 位運算

5.4 快速冪

5.5 進製

5.6 高精度計算

5.7 平衡三進製

5.8 數論

5.8.1 素數

5.8.2 最大公約數

5.8.3 尤拉函式

5.8.4 篩法

5.8.5 尤拉定理 & 費馬小定理

5.8.6 類歐幾里德演算法

5.8.7 裴蜀定理

5.8.8 乘法逆元

5.8.9 線性同餘方程

5.8.10 中國剩餘定理

5.8.11 二次剩餘

5.8.12 bsgs

5.8.13 原根

5.8.14 盧卡斯定理

5.8.15 莫比烏斯反演

5.8.16 杜教篩

5.8.17 min_25 篩

5.8.18 分解質因數

5.9 多項式

5.9.1 多項式部分簡介

5.9.2 拉格朗日插值

5.9.3 快速傅利葉變換

5.9.4 快速數論變換

5.9.5 快速沃爾什變換

5.9.6 多項式求逆

5.9.7 多項式開方

5.9.8 多項式除法|取模

5.9.9 多項式對數函式|指數函式

5.9.10 多項式牛頓迭代

5.9.11 多項式多點求值|快速插值

5.9.12 多項式三角函式

5.9.13 多項式反三角函式

5.9.14 常係數齊次線性遞推

5.10 生成函式

5.10.1 生成函式簡介

5.10.2 普通生成函式

5.10.3 指數生成函式

5.11 線性代數

5.11.1 向量

5.11.2 矩陣

5.11.3 高斯消元

5.11.4 線性基

5.12 線性規劃

5.12.1 線性規劃簡介

5.12.2 單純形演算法

5.13 組合數學

5.13.1 排列組合

5.13.2 卡特蘭數

5.13.3 斯特林數

5.13.4 貝爾數

5.13.5 伯努利數

5.13.6 康托展開

5.13.7 容斥原理

5.13.8 抽屜原理

5.14 概率初步

5.15 置換群

5.16 斐波那契數列

5.17 博弈論

5.18 牛頓迭代法

5.19 數值積分

5.20 分段打表

6

shell指令碼之從入門到放棄

批處理 預定義變數 用途 當前程序的程序號 pid 最後一次執行的命令的返回狀態。如果這個變數的值為 0,則證明上一條命令正確執行 如果這 個變數的值為非 0 具體是哪個數由命令自己來決定 則證明上一條命令執行錯誤 1後台執行的最後乙個程序的程序號 pid 備註 for,while,until三個大...

kmp從入門到放棄

標籤 kmp 擴充套件kmp 給你兩個字串,你需要回答,b串是否是a串的子串 a串是否包含b串 a aaaaaaaaaaaaaaaaaaaaaaaaaab b aaaaaaaab 最壞狀態 o mn 一般做法 for 列舉b在a串中的起始位置 for 向後比較ab是否相等 o n m 傳說中的kmp...

beego 從入門到放棄

beego 的專案基本都是通過 bee命令來建立的,所以在建立專案之前確保你已經安裝了 bee 工具和 beego。如果你還沒有安裝,那麼請查閱 beego 的安裝 和 bee 工具的安裝 現在一切就緒我們就可以開始建立專案了,開啟終端,進入 gopath src 所在的目錄 建立乙個專案名為201...