摘要: 题意 : 现有一字符串S,要求在S中找到最长的子串E,使得S满足格式“EAEBE”,其中A,B可以为任意的S子串。也就是说子串E既是S的前缀也是S的后缀,同时还在S中间出现,但不与前缀E与后缀E重叠。 分析 : 使用KMP的Next数组的特点,我们能够找出字符串所有相同的前后缀,即递推 Next[ 阅读全文
posted @ 2017-09-26 20:44 qwerity 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题意 : 给个字符串S,要把S分成两段T1,T2,每个字母都有一个对应的价值,如果T1,T2是回文串,那么他们就会有一个价值,这个价值是这个串的所有字母价值之和,如果不是回文串,那么这串价值就为0。问最多能获得多少价值? 分析 : 有两种做法,第一种是拓展KMP正反跑两次或者Manacher ①如果 阅读全文
posted @ 2017-09-26 19:45 qwerity 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 模板 int getMin(char *s) { int i = 0, j = 1, l; int len = strlen(s); while(i < len && j < len) { for(l = 0; l < len; l++) if(s[(i + l) % len] != s[(j + 阅读全文
posted @ 2017-09-26 18:50 qwerity 阅读(706) 评论(0) 推荐(0) 编辑
摘要: 模板 #include<stdio.h> #include<string.h> #include<algorithm> #include<map> using namespace std; const int maxn = 2e5 + 10; char s[maxn], sNew[maxn<<1]; 阅读全文
posted @ 2017-09-26 18:21 qwerity 阅读(213) 评论(0) 推荐(0) 编辑