和上一題一樣,不過這題只是要求最長回文子串的長度
在此採用了非常好用的manacher演算法
據說還是o(n) 的效率qaq
詳細用法參考了上篇部落格的參考資料,這兩天有空學習一下~
source code:
//#pragma comment(linker, "/stack:16777216")
//for c++ compiler
#include #include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define max(a,b) (((a) > (b)) ? (a) : (b))
#define min(a,b) (((a) < (b)) ? (a) : (b))
#define abs(x) (((x) > 0) ? (x) : (-(x)))
#define mod 1000000007
#define pi acos(-1.0)
using
namespace
std;
typedef
long
long
ll ;
typedef unsigned
long
long
ull ;
typedef unsigned
intuint
;typedef unsigned
char
uchar ;
template
inline void checkmin(t &a,t b)
template
inline void checkmax(t &a,t b)
const
double eps = 1e-7
;const
int n = 1
;const
int m = 1100011*2
;const ll p =10000000097ll ;
char str[m];//
start from index 1
intp[m];
char
s[m];
intn;
void
kp()
}}void
pre()
n = n*2 + 2
; str[n] = 0;}
intmain()
return0;
}
HDU 3068 最長回文
題 目 鏈 接 看完後自己寫了一遍,感覺真的是很神奇的結論啊!本來這題看到可以用字尾陣列來寫的,但沒有學過,去看了一下,真心給暈了,決定找個機會認真研究下。我的 include include includeusing namespace std define min a,b a b a b cha...
HDU 3068 最長回文
存在o n 的演算法,學習了一下 include include includeusing namespace std const int maxn 300011 int n,p maxn char str maxn in maxn int main str 0 str 1 n n 2 2 str ...
HDU 3068 最長回文
problem description 給出乙個只由小寫英文本元a,b,c.y,z組成的字串s,求s中最長回文串的長度.回文就是正反讀都是一樣的字串,如aba,abba等 input 輸入有多組case,不超過120組,每組輸入為一行小寫英文本元a,b,c.y,z組成的字串s 兩組case之間由空行...