前几天用后缀数组写过一次这题,毫无疑问很感人的TLE了-_-||
今天偶然发现了马拉车模板,O(N)时间就搞定
reference:http://acm.uestc.edu.cn/bbs/read.php?tid=3258
1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 using namespace std; 5 #define N 110010 6 char s[N*2],str[N*2]; 7 int n,p[N*2]; 8 9 void fun() 10 { 11 int len=(int)strlen(s); 12 str[0]='$';str[1]='#'; 13 n=2; 14 for(int i=0;i<len;i++) 15 { 16 str[n++]=s[i]; 17 str[n++]='#'; 18 } 19 str[n]='