HDU 3068 最長回文 最長回文子串

2022-04-14 14:29:59 字數 1410 閱讀 4020

和上一題一樣,不過這題只是要求最長回文子串的長度

在此採用了非常好用的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之間由空行...