萌新刚学字符串求助

P3809 【模板】后缀排序

b数组开M大小
by 辰星凌 @ 2020-06-26 07:02:44


@[Aohrty](/user/347944)
by 辰星凌 @ 2020-06-26 07:03:05


修改了你的代码:```cpp #include<iostream> #include<cstring> #include<cstdio> #pragma GCC optimize("Ofast") #define reg register using namespace std; const int M=1e6+5; char s[M]; int n,m,b[M],x[M],y[M],suff[M]; void suffix_array(){ int k,m=1<<7,num; for(reg int i=1;i<=n;++i)++b[x[i]=s[i]]; for(reg int i=1;i<=m;++i)b[i]+=b[i-1]; for(reg int i=n;i;--i)suff[b[x[i]]--]=i; for(reg int k=1;k<=n;k<<=1){ num=0; for(reg int i=n-k+1;i<=n;++i)y[++num]=i; for(reg int i=1;i<=n;++i)if(suff[i]>k)y[++num]=suff[i]-k; for(reg int i=1;i<=m;++i)b[i]=0; for(reg int i=1;i<=n;++i)++b[x[i]]; for(reg int i=1;i<=m;++i)b[i]+=b[i-1]; for(reg int i=n;i;--i)suff[b[x[y[i]]]--]=y[i],y[i]=0; swap(x,y); x[suff[num=1]]=1; for(reg int i=2;i<=n;++i){ if(y[suff[i]]!=y[suff[i-1]]||y[suff[i]+k]!=y[suff[i-1]+k])++num; x[suff[i]]=num; } if(num==n)return; m=num; } } signed main(){ scanf("%s",s+1); n=strlen(s+1); suffix_array(); for(reg int k=1;k<=n;++k)printf("%d ",suff[k]); } ```
by Fat_Fish @ 2020-06-26 08:18:25


```cpp #include<iostream> #include<cstring> #include<cstdio> #pragma GCC optimize("Ofast") #define reg register using namespace std; const int M=1e6+5; char s[M]; int n,m,b[M],x[M],y[M],suff[M]; void suffix_array(){ int k,m=1<<7,num; for(reg int i=1;i<=n;++i)++b[x[i]=s[i]]; for(reg int i=1;i<=m;++i)b[i]+=b[i-1]; for(reg int i=n;i;--i)suff[b[x[i]]--]=i; for(reg int k=1;k<=n;k<<=1){ num=0; for(reg int i=n-k+1;i<=n;++i)y[++num]=i; for(reg int i=1;i<=n;++i)if(suff[i]>k)y[++num]=suff[i]-k; for(reg int i=1;i<=m;++i)b[i]=0; for(reg int i=1;i<=n;++i)++b[x[i]]; for(reg int i=1;i<=m;++i)b[i]+=b[i-1]; for(reg int i=n;i;--i)suff[b[x[y[i]]]--]=y[i],y[i]=0; swap(x,y); x[suff[num=1]]=1; for(reg int i=2;i<=n;++i){ if(y[suff[i]]!=y[suff[i-1]]||y[suff[i]+k]!=y[suff[i-1]+k])++num; x[suff[i]]=num; } if(num==n)return; m=num; } } signed main(){ scanf("%s",s+1); n=strlen(s+1); suffix_array(); for(reg int k=1;k<=n;++k)printf("%d ",suff[k]); } ```
by Fat_Fish @ 2020-06-26 08:18:47


`@秋名山秋刀鱼` ~~希丰展?使Md~~
by derta @ 2020-06-26 13:21:21


感谢各路神仙.jpeg A了qwq
by Vigna @ 2020-06-26 13:57:17


|