摘要: code(防止忘记): void euler(){ for(int i = 2;i < n;i++){ if(!E[i]) for(int j = i;j < n;j+=i){ if(!E[j]) E[j] = j; E[j] = E[j]/i*(i-1); } } } 阅读全文
posted @ 2020-11-12 22:46 小又又yyyy 阅读(303) 评论(0) 推荐(0) 编辑
摘要: AC自动机算法流程 若我们没有构建出失败指针,则AC自动机就是一个普通的$Trie$,而用$Trie$完成上面的单词查询问题,我们需要对于文章的每一个位置$i$开始,将$S_{i\rightarrow m}$视作一个字符串,在$Trie$中进行查询,将所有所到达的节点进行标记,最后统计那些代表模式串 阅读全文
posted @ 2020-11-12 15:18 小又又yyyy 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 关于同余关系的一些定理: 自反性:\(a\equiv a\pmod{m}\) 对称性:\(a\equiv b\pmod{m}\),则$b\equiv a\pmod$ 传递性:\(a\equiv b\pmod{m}\),且$b\equiv c\pmod$,则$a\equiv c\pmod$ 同余的三则 阅读全文
posted @ 2020-11-12 11:03 小又又yyyy 阅读(83) 评论(0) 推荐(0) 编辑
摘要: Manacher 算法流程 为了不判断奇偶,方便比较,在原字符串里添加一些特殊字符 明确几个变量,$r$代表我遍历过的位置中回文串能延伸的最远位置,$mid$是$r$对应的中心位置,那么$mid$对应的左端点就是$2mid-r$,$f_i$表示$i$为中心的回文半径长度 接下来就分以下情况讨论,可以 阅读全文
posted @ 2020-11-12 08:39 小又又yyyy 阅读(102) 评论(0) 推荐(0) 编辑