0. Painter’s Studio (POI1998)
- 首先找規律。發現這個分形是每次平分,考慮二進位制。
- 容易發現 \(a_{i, j} = 1\) 的條件是不存在任意 \(i\) 使得 \(a_i < b_i\)。
- 考慮平移之後。\((i, j) \rightarrow (i + x, j + y)\) 都要是 \(1\)。問題轉化。
- \(f_{i, p, q}\) 表示從低往高第 \(i\) 位,\(p\) 是 \(a + x\) 的進位,\(q\) 是 \(b + y\) 的進位。
1. [bit compressor](Bit Compressor - 洛谷 | 電腦科學教育新生態 (luogu.com.cn))
- 確定順序:從右往左。(存疑)
- 考慮元素:壓縮前 \(t_0\) 個 \(0\),壓縮前 \(t_1\) 個 \(1\)。其中 \(t_0 \leq 40\) 比較特殊。
- 轉移顯而易見。
\(fail_v = [s_v == s_{ch_{fail_u}}]ch_{fail_u}\)
2. [Walk Through Squares](Problem - 4758 (hdu.edu.cn))
- 首先考慮字串匹配經典做法:字典樹,AC 自動機,KMP。
- 把模式串建到 Trie 上,使用 AC 自動機。
- \(f_{i, j, p \in \{0, 1\}, q \in \{0, 1\}, t}\) 表示當前在 \((i, j)\),是否出現 \(s_1 \or s_2\),在 Trie 上的節點編號是 \(t\)。
- 轉移同 AC 自動機,顯然。