
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 · 434 阅读 · 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 · 437 阅读 · 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 · 491 阅读 · 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 · 584 阅读 · 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 · 436 阅读 · 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 · 489 阅读 · 0 评论