統計學(一) 筆記 - 第五章 離散機率分配(Discrete Probability Distributions)

筆記說明

此筆記用途在於台北科技大學資訊與財金管理系大二上統計學重點整理
並非所有人都適用,部分對我而言稍加容易的內容並不會寫在此內。
這是觀看影片心得後的筆記,老師上課可能不太適用會忘記抄到

閱讀更多...

演算法知識 - Suffix Tree 後綴樹 (Using Ukkonen Algorithm)

Suffix Tree 介紹

Suffix Tree 是字典樹(Trie) 的延伸,透過對一字串的所有後綴去建構樹,是一個能解決許多字串特定問題的資料結構。

以下是 Suffix Tree 能解決的問題:

  • 尋找 A 字串是否在字串 B 中
  • 找出 B 在 A 字串重複的次數
  • 最長共同子字串

簡單來說 Suffix Tree 是將字串的所有後綴建構成 Trie,再將其壓縮(沒有分支的節點都放在同個節點)。

建立 Suffix Tree 的時間複雜度為 \(O(n)\),使用 Ukkonen Algorithm
通常建構 Suffix Tree 有兩種方法,一種時間複雜度為 \(O(n)\),另一種為 \(O(n^2)\),這裡只介紹普遍比賽會經用的演算法(Ukkonen Algorithm)

此文章跳開蠻多證明與理論,如果想要知道可再從下方參考連結點選即可

閱讀更多...

UVa719 - Glass Beads (Suffix Automation 後綴自動機 - 最小循環移位 Lexicographically minimum string rotation)

題目大意:

有一串項鍊由於線繩脆弱,可能會在最重與最輕的珠子的中間因為重力關係而導致繩線裂開,這些珠子的權重分別用英文字母表示,由於這些英文字母是循環的,給你一組字串試問怎麼樣找出此字串字典序最小的循環字串。

循環字串:假如字串有 “abc”,那則會 abcabcabc… 不斷循環下去,但總長度必定為原本字串長度,類似於項鍊。

閱讀更多...

演算法知識 - Suffix Automaton 後綴自動機

Suffix Automaton 介紹

Suffix Automaton,簡稱 SAM,(以下內文都簡稱 SAM),是一個能解決許多字串特定問題的資料結構。

只要關於這兩個字串問題都可以使用 \(O(n)\) 時間複雜度解決:

  • 在另一個字串中查詢另一個字串的所有出現位置
  • 計算此字串中裡面有多少不同的子字串

簡單來說 SAM 可以理解成字串壓縮,一個 SAM 最多只會有 \(2n-1\) 個節點與 \(3n-4\) 個轉移邊。

建立 SAM 的時間複雜度為 \(O(n)\)

此文章跳開蠻多理論與證明,如果想要知道可再從下方參考連結點選即可

閱讀更多...
  • © 2020-2024 John Doe
  • Powered by Hexo Theme Ayer
  • PV: UV: