UOJ270【清華集訓2016】工廠【題答,自動機,構造】
阿新 • • 發佈:2021-06-25
\(10\) 個 Task,要求構造一種"自動機"識別給定的一類字串,\(\Sigma=[33,126]\cap\N\)。
Task 1
用節點表示當前最後一個字元。
Task 2
kmp 自動機板子。
Task 3
比較 sb 的部分分,設 (
表示 \(1\),)
表示 \(-1\),用節點表示字首和。
Task 5
用節點表示當前\(\bmod 3\) 餘數。
Task 6/7
注意到 Fibonacci 串有些好性質:把 \(f[i]\) 的 \(\texttt{ba}\) 替換為 \(\texttt b\),\(\texttt b\) 替換為 \(\texttt a\) 就得到 \(f[i-1]\)
這時候就要用到蛐蛐了:匹配到 \(\texttt{ba}\) 的時候吐一個 \(\texttt b\),匹配到 \(\texttt{bb}\) 的時候吐一個 \(\texttt a\),吃剩個 \(\texttt a\) 的時候 Accept,吃剩個 \(\texttt b\) 的時候吐一個 \(\texttt a\) 然後重新匹配。
要將各個串分開來,所以要搞個分割符,不是 \(\texttt{ab}\) 就行,不妨設為 \(0\),在起點放一個吐 \(0\) 的蛐蛐然後在紙上畫畫即可。
Task 10
看上去很嚇人,但這東西實際上仍然是一個括號匹配。
建 \(2\times 101\) 個點,\(x\pod{x\in[1,101]}\)