我写的的SA 8000ms
被
的SAM 2800ms
和
的最小表示法 500ms
头都锤爆…
CODE
贴上大常数选手的代码
#include
using namespace std;
char cb[1inline void read(T &res) {
char ch; int flg = 1; while(!isdigit(ch=getchar()))if(ch=='-')flg=-flg;
for(res=ch-'0';isdigit(ch=getchar());res=res*10+ch-'0'); res*=flg;
}
const int MAXN = 600005;
int s[MAXN];
int x[MAXN], y[MAXN], c[MAXN], rk[MAXN], sa[MAXN];
inline void Get_Sa(int n, int m) {
for(int i = 1; i = 1; --i) sa[c[x[i]]--] = i;
for(int k = 1; k k) y[++p] = sa[i]-k;
for(int i = 1; i = 1; --i) sa[c[x[y[i]]]--] = y[i];
swap(x, y);
x[sa[1]] = p = 1;
for(int i = 2; i
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net