原创 hdu2222 Keywords Search(AC自動機入門)

題意:給你一組單詞,最後再給你一個文本串,問最後文本串中有幾個單詞。 思路:AC自動機模板。 AC Code: #include<iostream> #include<cstring> #include<queue> #include<

原创 SPOJ Order statistic set(平衡樹 tree)

題意: 有幾個操作,  I  x :  如果集合S中不存在x則添加x到集合S中 D x: 如果集合S中存在x則刪除x C x: 查詢 比 集合中比x 小的數的個數 K x: 查詢集合S中第k小的數,如果 K大於集合的元素則輸出   inv

原创 hdu4825 Xor Sum(01字典樹)

題意:給你一個整數數列,然後在給你一個數,讓你在這個整數數列中尋找到一個數使得與給定數字的異或最大。 思路:把整數序列建立起一棵01字典樹,然後查找即可。(還是開 ll 比較好)。 AC Code: #include<iostream>

原创 hdu 5536 Chip Factory(枚舉 + Trie)

題意:給你一個整數序列。然後讓你求 (s[i]+s[j])^s[k] 最大的值,其中 i、j、k 各不相同。 思路:由於範圍1000較小,但三重循環有可能超時,我們可以將這個整數序列構造成一個字典樹,然後雙重循環枚舉兩個數的和,變成了求

原创 spoj Distinct Substrings(Trie)

題意是給你一個子串,然後讓你找出它的不同子串的種類數。 思路:靜態Trie樹 “動態” 建樹。 AC Code: #include<iostream> #include<cstring> #include<queue> #include

原创 hdu2203 親和串(KMP)

      親和串 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s):

原创 spoj Phone List(Trie)

題意就是給你一組字符串,如果任意一個串都不能作爲另一個串的前綴,輸出YES;否則輸出NO。 思路:先把字符串存起來,然後從按長度從小到大插入,這樣可以方便檢驗長度大的串是否會經過長度短的串,即長度較短的串是否會是長度較長串的前綴。 AC

原创 51Nod 1277 字符串中的最大值(KMP + DP)

題意:給你一個字符串,然後讓你找該字符串 的前綴出現次數 * 長度的最大值。 思路:KMP + dp。 先KMP求出next數組。設dp[i] 代表 i長度的 前綴出現的次數。 那麼 對應着  i   有 dp[ next[i] ] +=

原创 計算幾何 —— 線段性質

  杭電課件 struct Point { //點 double x, y; }; struct Segments { //線段 Point A, B; }Seg[1005]; double Matrix(Point a,Poin

原创 開學第七週.Two

這幾天效率不怎麼高,基本把kuangbin的最短路專題刷完,開始刷KMP專題,然後看博客看的很少,一到晚上就犯困,我真是服氣我自己了。Tarjan算法,最小生成樹計數都還沒學會,想學的東西太多了。 加油!

原创 poj 3068 最長迴文(馬拉車)

題意:給你一個字符串,然後讓你輸出這個串的最長迴文子串的長度。 思路:馬拉車模板題。 AC Code: #include<iostream> #include<cstring> #include<queue> #include<map>

原创 poj2594 Simpsons’ Hidden Talents(KMP | 擴展KMP)

題意:給你兩個字符串s 和 t,讓你找一個最長的字串,它是s的前綴 ,也是t的後綴,如果沒有輸出0,否則輸出這個字符串和最大的長度。 思路:很基礎的KMP,一開始沒轉過來這個彎,主要是對KMP算法中f[ ]  數組的含義不是很清楚。 f[

原创 hdu6153 A Secret(KMP + DP)

題意: 給你兩個字符串 t 和 s,然後讓你計算  s的後綴在 t中出現的次數* 後綴的長度  累加的 和 。 思路:  考慮KMP ,因爲 KMP 是匹配前綴的所以,需要倒轉字符串。 然後設dp數組爲 長度 爲 i的前綴 在 t中出現

原创 開學第八週. one

不知爲何,這幾天總感覺疲憊,總感覺累。可能是我“老"了吧(滑稽。 這幾天彷彿沒做什麼似的,學了點字符匹配的算法,刷了十幾道題,其餘時間似乎一直玩,反正我沒感覺到空暇時間收穫到什麼,不知道這種狀況會有多久。不管怎麼樣,繼續努力唄。

原创 hdu5510 Bazinga(KMP 剪枝) !!

題意:給你一系列字符串,編號爲1 - n ,然後讓你找一個下標最大的串,在它之前存在一個串不是這個串的子串,如果有則輸出這個串的 下標,如果沒有則 輸出 - 1。 思路: KMP匹配。一看數據都挺小,直接匹配,結果TTTTTT......