1. 程式人生 > 其它 >UOJ270【清華集訓2016】工廠【題答,自動機,構造】

UOJ270【清華集訓2016】工廠【題答,自動機,構造】

\(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]}\)

表示 \(\texttt i\)\(\texttt e\)\(x-1\) 個,\(x+101\) 表示 \(\texttt i\)\(\texttt e\)\(x-1\) 個,且後面多了個 \(\texttt a\)

做不動了,下次一定。