字符串 -------- Manacher
SolarDomo
每天都被头像萌醒
展开
-
HDU 3068 Manacher 模板题
题目链接题意: 求字符串的最长回文长度代码:#include <cstdio> #include <iostream> #include <vector> #include <cstring> #include <algorithm> #define sf scanf #define pf printf using namespace std; const int maxn = 110000 * 2原创 2016-08-08 11:59:46 · 307 阅读 · 0 评论 -
POJ 3974 Manacher 模板题
题目链接题意:求最长回文子串的长度代码:#include <cstdio> #include <iostream> #include <vector> #include <cstring> #include <algorithm> #define sf scanf #define pf printf using namespace std; const int maxn = 1000000 * 2原创 2016-08-08 12:09:30 · 309 阅读 · 0 评论 -
HYSBZ 2342 最长双倍回文串 Manacher
题目链接题意: 双倍回文串 为:一个回文串是一个更小的回文串的两倍首先我们用Manacher将字符串扫一遍 得到dis数组 由题意这个回文串一定是4的倍数枚举这个串的中心i 和 小回文串的半径k dis[i] - 1 >= 4 * k 判断是否存在这样的小回文串 如果存在 则小回文串的中心 j = i + (4 * k + 1) / 2 如果dis[j] - 1 >= 2*k 那么存在这样原创 2016-08-08 16:16:53 · 749 阅读 · 1 评论 -
Manacher 模板
测试题目:const int maxn = 500; int dis[maxn]; char str1[maxn],str2[maxn];int get_dis(){ int len = strlen(str1); str2[0] = '$'; char* str_a = str2 + 1; for(int i = 0;i <= len;++i){ s原创 2016-09-26 18:07:35 · 261 阅读 · 0 评论