模板 AC自動機

2022-05-09 14:34:28 字數 837 閱讀 6395

我錯了qaq,前兩天剛立下的flag就倒了

ac自動機其實可以做trie圖做不了的題:

比如這道:

2754: [scoi2012]喵星球上的點名

字符集太大構建不了trie圖。

所以還是老老實實地學習一下ac自動機吧

主要是不管空節點,構建fail指標時乙個乙個往上蹦直到合法。

匹配也一樣。

**:

1 #include2 #include3 #include4 #include5

using

std::queue;

6struct

trnttr[2000000

];12

char tmp[2000000

];13

intn;

14int

siz;

15 queueq;

16void insert(char *a)

1727 tr[root].fin++;

28return;29

}30void build(void)31

52}53}

54return;55

}56int cal(char *a)

5776}77

}78return

ans;79}

80int

main()

8188

build();

89 scanf("

%s",tmp+1

);90 printf("

%d\n

",cal(tmp));

91return0;

92 }

AC自動機模板

ac自動機模板 ac自動機模板 使用方法 1 init 初始化函式 2 insert str 插入字串函式 3 build 構建ac自動機 4 query str 返回出現的字串個數 使用需注意事項 1 注意輸入的字元的範圍,需對next和其二維大小及相關引數進行更改 2 注意next fail和e...

AC自動機模板

ac自動機主要是用於多模式串的匹配問題,按照我的理解,ac自動機就是在tire樹上實現kmp演算法,由於ac自動機加入了失敗指標,所以可以把他看成乙個狀態轉移的圖。給出模板 include include include include includeusing namespace std cons...

模板 AC自動機

我覺得ac自動機的難點和核心是構建失敗指標,父親的失敗指標的兒子 son2 中有和兒子 son1 相同的,即為son1的失敗指標 例 還是有個不懂的地方 第90行,跪求大佬賜教 include include include include include include include inclu...