
KMP
文章平均质量分 74
嘎达啊
无名小卒
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu 1867 A + B for you again
题意: 给你两个字符串a,b相加 a+b,合并a的后缀和b的前缀 得到ab 在 将 b a 相加 b+a 合并b的后缀和a的前缀 得到ba 在先比较ab ba长度 短的优先 如果长度相同 按字典树小的优先 #include #include #include using namespace std; const int maxn = 1e5+10; char fa[maxn], c[m原创 2013-08-19 16:06:41 · 443 阅读 · 0 评论 -
hdu 1711 KMP
#include #include #include using namespace std; const int maxn = 1e6+9; const int maxn1 = 1e4+9; int a[maxn], b[maxn1]; int n, m; int next[maxn1]; void Next() { next[0] = -1; for(int j = 1原创 2013-08-16 16:27:43 · 449 阅读 · 0 评论 -
KMP
参考: http://www.cnblogs.com/BeyondAnyTime/archive/2012/07/09/2583133.html 以hdu 1711 为模板 #include #include #include using namespace std; const int maxn = 1e6+9; const int maxn1 = 1e4+9; in翻译 2013-08-14 22:56:29 · 499 阅读 · 0 评论 -
hdu1686
#include #include #include using namespace std; const int maxn = 1000000+9; const int maxn1 = 10000+9; char a[maxn]; char b[maxn1]; int nextval[maxn1], len1, len2; void get_nextval() { int i =原创 2013-08-17 23:27:37 · 600 阅读 · 0 评论 -
hdu 2594 Simpsons’ Hidden Talents
题意:求两个串的前缀和后缀最大的长度, 思路:将第一个串作为模式串 第二个作为原串,进行KMP 当 i == len1 作为结束条件 #include #include #include using namespace std; const int maxn = 50000+10; char s1[maxn], s2[maxn]; int len1, len2; int nextval[原创 2013-08-18 14:48:50 · 444 阅读 · 0 评论 -
hdu 2203 亲和串
思路:如果第一个串长度小于第二个就no 将第一个串后面加上第一个串前x个字符 (x是第二个串的长度); 因为如果这样还不能匹配就循环多少都不会匹配; #include #include #include using namespace std; const int maxn = 200000; char a[maxn], b[maxn]; int nextval[maxn]; int l原创 2013-08-18 15:44:02 · 497 阅读 · 0 评论