原创 字符串匹配-擴展KMP

字符串匹配-擴展KMP 一、說明。 如字符串cabcab 後綴:b,ab,cab,bcab,abcab,cabcab 前綴:c,ca,cab,cabc,cabca,cabcab 擴展kmp:可求字符串T的(所有)後綴與字符串S的最長公共前

原创 數論在acm競賽中的應用1

總結一(數論1) 摘要:不摘了,懂的就幾個定理 關鍵詞:歐幾里得,擴展歐幾里得,乘法逆元,同餘膜,質數,二分快速冪,矩陣,待續 一,算法介紹   1)歐幾里得 Gcd(a,b)=Gcd(b,a%b) 註解:遞歸,循環也行,a=Gcd(a,

原创 二分匹配之匈牙利算法

二分匹配之匈牙利算法 一、概念 二分圖:把點分爲兩個集合,在同一個集合的點之間不能有邊,也就是說邊只能存在於分別來自兩個集合的點間,這樣的圖就是二分圖。   最大二分匹配:在原二分圖上通過刪除一些邊,來保證每個點只能與一個點相連(一一對應

原创 字符串匹配-KMP

字符串匹配-KMP 一、傳統匹配。 逐個匹配,若匹配失敗,文本串換下一個字符,模式串從頭與其再逐個匹配.......時間複雜度O(n*m). 二、kmp匹配 若模式串第i+1位匹配失敗,文本串換下一個字符,模式串從第fail[i]+1位

原创 求最短路徑的三種基本算法

最短路徑     //代碼請翻挑戰程序設計 一、Bellman-Ford算法 從原點一層一層擴展更新(像從a能直接到b,則看作b是a的下一層),直到再次遍歷所有邊時不再有更新,則所有點距原點的最小值確定。 1、用在:在無負圈的單向

原创 由poj 1125,poj 1062解析最短路徑

由poj 1125,poj 1062解析最短路徑 一、poj 1125(有向圖,未定義起始點和終點) 題意:給出一個圖,點表示人,邊表示消息從這個人傳到另一個人所花的時間,你的任務是求把消息告訴裏面的哪一個人(假設你只能告訴一個人)

原创 C語言實現大型非負整數加減乘除

大型非負整數加法、乘法 Long long能存儲的數長度最大僅爲20位,當數據超過了,便不能再進行普通的計算。 一、加法 把超長的數據看成字符串,以字符數組來存儲,第一個字符即該數據的最高位。對兩個數組從最低位開始逐位相加,相加的

原创 高效求最短路SPFA算法(C語言)

看這個之前建議理解了Bellman-Ford算法,因爲本算法可以看做是對其的優化。 優化一、改用鄰接表存圖。鄰接表的使用,即一個點配一個鏈表。 優化二、用列表來存儲鬆弛邊緣(Bellman-Ford算法過程可以看作一個圖,從其中的一個起點