Manacher's+Algorithm

abababa 1234321 1234321은 가운데 b를 기준으로 했을 때 3==3, 2==2, 1==1 매칭되는거잖아 그럼 이제 내가 네번째 구하고 다섯번째 구하고 여섯번째에 있는 b에서 뻗어나가는 젤큰 패릴ㄴ드롬 길이를 구하려고해 근데 얘는 최소 2번째에 있는 b의 팰린드롬 최장거리랑은 같아 왜냐면 걔네 둘은 좌우가 서로 뒤집혀서 똑같거든 그니까 음 정확히는 내 좌표가 i, 날 포함하는 최우측 팰린드롬의 범위가 [l, r]이라고 하면 나랑 매칭되는 저쪽애의 좌표 j = l + (r-i)고 내가 안봐도 팰린드롬인 애는 min(DP[j], r-i) 야 혹시 j번째가 지금 이 팰린드롬을 삐져나가면서 더 길면 그건 안되니까.. ㅇㅇ 그래서 저렇게 최소거리는 보장되고 그 최소거리에 ++하면서 계속 넓혀가고 [l, r]갱신하고 이부분이 왜 오더가 n으로 떨어지는진 모르겠는데 하여간 이렇게 하면 전체오더가 amortized n이래

from []

min(DP[j], r-i)에서 DP[j]일때는 palindrome확장이 안일어나고, r-i일때만 일어나는데 확장이 최대 n번 일어날 수 있으니까 ㅇㅇ