FOJ 1589 自動機 解題報告

2021-05-01 17:48:46 字數 772 閱讀 1636

tom博士最近研發了乙個自動機,該自動機能夠同時處理n個佇列。其中,佇列的編號為1..n。給定m個操作,模擬該自動機的工作狀態。

第一行有2個整數n,m(1≤n, m≤10,000),表示自動機能處理n個佇列,接下來m行每行一條操作指令。

每條指令的格式如下:

指令指令說明

init

將自動機初始化,此時所有的佇列清空。

push id val

把整數val加入到編號id的佇列的尾部。

pop id val

輸出並刪除編號id的佇列的隊首元素,如果隊列為空,則輸出「null」。

在每條指令中,id的編號在1..n中,val的取值範圍為-2

31~2

31。輸入資料保證操作的第一條指令都是是init。本題有多組輸入資料,你必須處理到eof為止。

請對輸入資料中每條pop指令的結果依次輸出一行結果。

3 12

init

push 1 100

pop 2

push 3 300

push 1 200

push 2 -5

pop 2

push 2 -10

pop 1

init

push 1 7

pop 1

null

-5100

7

分析:這題我是用雙佇列容器(deque),因為queue容器不包含清楚功能
**如下:

AC自動機及字尾自動機

ac自動機是一種基於trie樹的演算法,其本質和kmp上的處理很相似。trie樹結構 kmp轉移思路 ac自動機組要由三個部分組成 trie樹的建立 fail指標的匹配 對ac自動機的詢問 每次建立自動機會有一次初始化 ac自動機類 struct node node結構體 struct ac voi...

字尾自動機 序列自動機綜合

好像序列自動機還沒有寫過 串長為n的串共有n 1個節點,除了串中的n個節點,還有乙個空的根節點放在串首。每個節點至多有26條出邊,每條邊連向它之後的第乙個字元。串中的任意乙個子串行對應了一條根到某個節點的路徑。且每條路徑對應乙個不同的子串行。每個節點的parent是這個字母上一次出現的位置。更新只要...

有窮自動機

problem description adfa 證明 adfa是可判定的。實驗方法 編寫乙個演算法 程式,對於任意給定的輸入,可以判定adfa。input 有多個測試序列,測試結束於測試檔案結束 每個測試序列的第一行為幾個正整數n m t a分別表示有n個狀態,從a開始m個小寫字母組成的字符集,第...