随笔分类 -  字符串处理

字符串处理相关算法
摘要:字符串Hash - Luogu P3370 #include <bits/stdc++.h> using namespace std; typedef unsigned long long ull; ull base = 131; ull a[10010]; char s[10010]; int n 阅读全文
posted @ 2021-05-10 10:26 popozyl 阅读(48) 评论(0) 推荐(0)
摘要:AC自动机 - AcWing 1282 - 搜索关键词 #include <bits/stdc++.h> #define maxn 510000 using namespace std; int t,n,cnt; int trie[maxn][26]; int fail[maxn]; int wor 阅读全文
posted @ 2021-02-13 22:48 popozyl 阅读(51) 评论(0) 推荐(0)
摘要:KMP 模板(修订,更易懂) 之前一篇博客简单介绍了KMP的原理,但当时写的模板两个字符串数组都是从下标为0开始的,逻辑有些混乱. 这次修改了x,y下标从1开始,感觉更加自然. #include <bits/stdc++.h> using namespace std; const int N = 1 阅读全文
posted @ 2020-11-16 09:57 popozyl 阅读(110) 评论(0) 推荐(0)
摘要:KMP算法 给定文本串A、模式串B,求模式串B在文本串A中出现的次数。 设文本串A的长度为n,模式串B的长度为m 暴力:二重循环+回溯 复杂度 O(n*m) KMP: 将复杂度优化到O(n+m) 本篇文章是我初学KMP算法所写,如果有错误欢迎指出 另外本文的KMP算法的实现方式较常规的实现效率似乎低 阅读全文
posted @ 2020-07-20 08:57 popozyl 阅读(204) 评论(0) 推荐(0)
摘要:/* 在求最长回文子串时,如果暴力枚举左右端点,将得到指数级的复杂度。优化一点,使用二维数组来DP,可以将复杂度降到O(m*n)m,n为两条串的长度。本文采用Manacher算法,无论是时间还是空间上都优于二维DP。 */ 1 #include <iostream> 2 #include <stri 阅读全文
posted @ 2019-12-30 23:31 popozyl 阅读(214) 评论(0) 推荐(0)