提交记录 7948
| 提交时间 |
评测时间 |
| 2019-01-25 20:42:27 |
2020-08-01 01:10:52 |
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cctype>
using namespace std;
const int MAXN=100010;
#define rg register int
char s[MAXN];
int c[MAXN],x[MAXN],y[MAXN],n,m,sa[MAXN],h[MAXN],rk[MAXN];
inline void suffix_sort()
{
n=strlen(s+1);
m='z';
for(rg i=1;i<=n;i++)c[x[i]=s[i]]++;
for(rg i=1;i<=m;i++)c[i]+=c[i-1];
for(rg i=n;i;i--)sa[c[x[i]]--]=i;
for(rg k=1;k<=n;k<<=1)
{
rg num=0;
for(rg i=n-k+1;i<=n;i++)y[++num]=i;
for(rg i=1;i<=n;i++)
if(sa[i]>k)y[++num]=sa[i]-k;
for(rg i=1;i<=m;i++)c[i]=0;
for(rg i=1;i<=n;i++)c[x[i]]++;
for(rg i=1;i<=m;i++)c[i]+=c[i-1];
for(rg i=n;i;i--)sa[c[x[y[i]]]--]=y[i],y[i]=0;
swap(x,y);
x[sa[1]]=num=1;
for(rg i=2;i<=n;i++)
x[sa[i]]=(y[sa[i]]==y[sa[i-1]]&&y[sa[i]+k]==y[sa[i-1]+k])?num:++num;
if(num==n)break ;
m=num;
}
for(rg i=1;i<=n;i++)rk[sa[i]]=i;
for(rg i=1,k=0;i<=n;i++)
{
if(k)k--;
rg j=sa[rk[i]-1];
while(j+k<=n&&i+k<=n&&s[j+k]==s[i+k])k++;
h[rk[i]]=k;
}
}
int main()
{
scanf("%s",s+1);
suffix_sort();
for(rg i=1;i<=n;i++)
printf("%d ",sa[i]);
printf("\n");
for(rg i=2;i<=n;i++)
printf("%d ",h[i]);
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Subtask #1 Testcase #1 | 186.9 us | 836 KB | Wrong Answer | Score: -100 | 显示更多 |
| Subtask #1 Testcase #2 | 195.82 us | 836 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #3 | 195.82 us | 836 KB | Accepted | Score: 100 | 显示更多 |
| Subtask #1 Testcase #4 | 318.96 us | 840 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #5 | 318.7 us | 840 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #6 | 317.01 us | 840 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #7 | 30.147 ms | 3 MB + 136 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #8 | 47.439 ms | 3 MB + 356 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #9 | 32.571 ms | 3 MB + 224 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #10 | 21.299 ms | 2 MB + 400 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #11 | 22.161 ms | 2 MB + 440 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #12 | 38.357 ms | 3 MB + 420 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #13 | 37.241 ms | 3 MB + 440 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #14 | 34.007 ms | 3 MB + 252 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #15 | 33.795 ms | 3 MB + 256 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #16 | 37.098 ms | 3 MB + 420 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #17 | 36.789 ms | 3 MB + 420 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #18 | 36.999 ms | 3 MB + 420 KB | Accepted | Score: 0 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2026-04-07 14:32:52 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠