标签:des style blog class code tar
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 using namespace std; 6 7 const int MAXN = 100010; 8 9 int p[MAXN << 1], s[MAXN << 1]; 10 int n, cnt, T; 11 12 void manacher() { 13 int mx = 0, id; 14 for(int i = 1; i < cnt; ++i) { 15 if(mx > i) p[i] = min(p[2 * id - i], mx - i); 16 else p[i] = 1; 17 while(s[i + p[i]] == s[i - p[i]] && s[i + p[i]] <= s[i + p[i] - 2]) ++p[i]; 18 if(i + p[i] > mx) { 19 id = i; 20 mx = i + p[i]; 21 } 22 } 23 } 24 25 int main() { 26 scanf("%d", &T); 27 while(T--) { 28 scanf("%d", &n); 29 cnt = 0; 30 s[cnt++] = -2; s[cnt++] = -1; 31 for(int i = 0; i < n; ++i) { 32 scanf("%d", &s[cnt++]); 33 s[cnt++] = -1; 34 } 35 s[cnt] = 0; 36 manacher(); 37 int ans = 0; 38 for(int i = 0; i < cnt; ++i) 39 ans = max(ans, p[i] - 1); 40 printf("%d\n", ans); 41 } 42 }
HDU 4513 吉哥系列故事——完美队形II(Manacher),布布扣,bubuko.com
HDU 4513 吉哥系列故事——完美队形II(Manacher)
标签:des style blog class code tar
原文地址:http://www.cnblogs.com/oyking/p/3704156.html