Suffix Array

後綴是甚麼? 比方說字串 S = banana,S的所有後綴就是: banana anana nana ana na a 將這些後綴排序後: a ana anana banana na nana Suffix Array就是將字串的每個後綴進行排序後,紀錄該後綴開頭index的陣列: int SA[N]; SA[i]; // 表示順序第i個後綴的開頭index 如果 SA[3] = 0 ,表示字典序第 4 小的後綴是從 S[0] 開頭的,也就是 banana。 例題:算出 s = "aba" 的 SA 陣列 ans SA[3] = {2, 0, 1}; 怎麼找出 Suffix Array ? 暴力法就是把所有後綴抓出來,然後進行排序。顯然這個方法的時間複雜度是 $O(N^2\log N)$ (別忘了比較兩個字串要 $O(N)$)。 ...

July 23, 2026

台大資工大一下修課心得

羽球初級 課程資訊 ...

July 23, 2026

使用本地大語言模型翻譯Unity遊戲

打破語言隔閡!!(๑•̀ㅂ•́)و✧

June 18, 2026

台大資工大一上修課心得

計算機程式設計 課程資訊 ...

January 12, 2026

模反元素

又稱模倒數、模逆元,簡稱$MMI$或$inv$ 如果$a$跟$n$互質 那一定有一個$b$,讓$(a \times b) \mod n = 1$ 或$(a \times b - 1)$可以整除$n$ 這時候$b$就是$a \mod n$的模反元素 而且$b + kn, k \in Z$ $b + kn$都是$a \mod n$的模反元素 用途 在求$a \div b \mod p$時,如果$a$、$b$太大無法直接相除 需要把$\div b$替換成$\times c$,並使$a \div b \equiv a \times c \pmod p$ 這樣就可以拆成$(a \mod p) \times (c \mod p)$ 而這個$c$就是模反元素 處理溢位時尤為好用 舉例 $3$、$11$互質 $inv = 4$ $3 \times 4 \mod 11 = 1$ 所以根據定義: $4 + 11k = 4, 15, 26 ...$ $3 \times 15 \mod 11 = 1$ $3 \times 26 \mod 11 = 1$ $...$ $3 \times (4 + 11k) \mod 11 = 1, k \in Z$ ...

September 30, 2025