摘要: $Kmp$与$Trie$的优美结合,相当于在$Trie$上跑$Kmp$。 一个重要定义:$Fail$指针(失配指针),指向其他路径上与该字母相同的节点。当前路径的模式串的后缀与$fail$指针指向的模式串前缀相同(与$kmp$类似)。 $Fail$指针的作用:在对于一个文本串匹配多个模式串时,如果当 阅读全文
posted @ 2022-10-27 19:17 sandom 阅读(31) 评论(1) 推荐(0) 编辑
摘要: struct tree { int kid[10]; }; tree tr[Z]; int tot; bool end[Z]; void insert(char s[], int len)//插入一个字符串 { int rt = 1; for (re i = 1; i <= len; i++) { 阅读全文
posted @ 2022-10-27 19:13 sandom 阅读(46) 评论(1) 推荐(0) 编辑
摘要: 一对相等的真前缀与真后缀的个数($nxt$数组) void get_nxt(char s[], int len)//前缀函数 { nxt[1] = 0; for (int i = 2, j = 0; i <= len; ++i) { while (j && s[i] != s[j + 1]) j = 阅读全文
posted @ 2022-10-27 19:13 sandom 阅读(17) 评论(1) 推荐(0) 编辑
摘要: 将$k$进制数转化为$B$进制数。 const int B = 131; typedef unsigned long long ull; ull ba[Z], ha[Z]; void init(int n) { ba[0] = 1; for (int i = 1; i <= n; ++i) ba[i 阅读全文
posted @ 2022-10-27 19:12 sandom 阅读(36) 评论(1) 推荐(0) 编辑