Trie总结
是各种自动机的基础。
数据结构里也会讲。这里只讲Trie作为字典使用的情形。
板子:
inline void ins(string s,int v){
int u=0;
for(int i=0;s[i];++i){
int c=idx(s[i]);
if(!ch[u][c]){
memset(ch[sz],0,sizeof(ch[sz]));
ch[u][c]=sz++;
}
u=ch[u][c];
val[u]+=v;
}
}
其他操作是类似的。理解如何在Trie上跳即可。\(ch[u][i]\)表示\(u\)节点经过代表字符\(i\)的边后到达的儿子节点。
一般用于检索字符串是否出现。其他应用见数据结构篇。

浙公网安备 33010602011771号