AC自動機 模板

2021-08-29 16:21:40 字數 1518 閱讀 4967

洛谷的兩道模板題目

簡單版

#include

#define n 500010

using

namespace std;

queue<

int>q;

struct ac_

val[now]++;

//標記 是乙個單詞尾

}void

build()

}int

query

(char

*s)return ans;

}}ac;

int n;

char p[

1000005];

intmain()

加強版 醜陋版,強行在字典樹上找最大的字串

**

#include

#define n 500010

using

namespace std;

queue<

int>q;

struct ac_

void

ins(

char

*s,int n)

id[now]

= n;

val[now]++;

//標記 是乙個單詞尾

}void

build()

}int

query

(char

*s)}

return ans;

}void

dfs(

int now,

int mx)}}

void

print()

}ac;

int n;

char p[

1000005];

char ss[

200][71

];intmain()

ac.init

(ac.cnt +1)

;}return0;

}

優雅的加強版**

#include

#define n 500010

using

namespace std;

queue<

int>q;

struct ac_

void

ins(

char

*s,int n)

id[now]

= n;

val[now]++;

//標記 是乙個單詞尾

}void

build()

}int

query_mx

(char

*s)}

}return res;

}}ac;

int n;

char p[

1000005];

char ss[

200][71

];intmain()

return0;

}

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...