提交记录 8306


用户 题目 状态 得分 用时 内存 语言 代码长度
ouuan 1006. 【模板题】后缀排序 Wrong Answer 0 49.296 ms 4408 KB C++ 1.10 KB
提交时间 评测时间
2019-02-12 10:22:19 2020-08-01 01:15:37
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;

const int N=100010;

char s[N];
int n,sa[N],sa2[N<<1],rk[N<<1],px[N],cnt[N],height[N];

int main()
{
    int i,j,k,w,p,m=300;
    
    scanf("%s",s+1);
    n=strlen(s+1);
    
    for (i=1;i<=n;++i) ++cnt[rk[i]=s[i]];
    for (i=1;i<=m;++i) cnt[i]+=cnt[i-1];
    for (i=n;i>=1;--i) sa[cnt[rk[i]]--]=i;
    
    for (w=1;w<n;w<<=1,m=p)
    {
        memset(cnt,0,sizeof(cnt));
        for (p=0,i=n;i>n-w;--i) sa2[++p]=i;
        for (i=1;i<=n;++i) if (sa[i]>w) sa2[++p]=sa[i]-w;
        for (i=1;i<=n;++i) ++cnt[px[i]=rk[sa2[i]]];
        for (i=1;i<=m;++i) cnt[i]+=cnt[i-1];
        for (i=n;i>=1;--i) sa[cnt[px[i]]--]=sa2[i];
        swap(sa2,rk);
        for (p=0,i=1;i<=n;++i) rk[sa[i]]=sa2[sa[i]]==sa2[sa[i-1]]&&sa2[sa[i]+w]==sa2[sa[i-1]+w]?p:++p;
    }
    
    for (i=1;i<=n;++i) printf("%d ",sa[i]);
    puts("");
    
    for (i=1,k=0;i<=n;++i)
    {
        if (k) --k;
        while (s[sa[rk[i]-1]+k]==s[i+k]) ++k;
        height[rk[i]]=k;
    }
    
    for (i=2;i<=n;++i) printf("%d ",height[i]);
    
    return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #137.27 us60 KBWrong AnswerScore: -100

Subtask #1 Testcase #2379.98 us1 MB + 984 KBAcceptedScore: 100

Subtask #1 Testcase #3379.93 us1 MB + 984 KBAcceptedScore: 0

Subtask #1 Testcase #4778.07 us1 MB + 984 KBAcceptedScore: 0

Subtask #1 Testcase #5775.97 us1 MB + 984 KBAcceptedScore: 0

Subtask #1 Testcase #6911.58 us1 MB + 984 KBAcceptedScore: 0

Subtask #1 Testcase #749.296 ms3 MB + 956 KBAcceptedScore: 0

Subtask #1 Testcase #849.278 ms4 MB + 120 KBAcceptedScore: 0

Subtask #1 Testcase #949.055 ms3 MB + 1008 KBAcceptedScore: 0

Subtask #1 Testcase #1031.089 ms3 MB + 292 KBAcceptedScore: 0

Subtask #1 Testcase #1130.781 ms3 MB + 332 KBAcceptedScore: 0

Subtask #1 Testcase #1239.447 ms4 MB + 312 KBAcceptedScore: 0

Subtask #1 Testcase #1339.43 ms4 MB + 280 KBAcceptedScore: 0

Subtask #1 Testcase #1447.922 ms4 MB + 12 KBAcceptedScore: 0

Subtask #1 Testcase #1547.261 ms4 MB + 28 KBAcceptedScore: 0

Subtask #1 Testcase #1639.481 ms4 MB + 312 KBAcceptedScore: 0

Subtask #1 Testcase #1739.265 ms4 MB + 312 KBAcceptedScore: 0

Subtask #1 Testcase #1839.406 ms4 MB + 312 KBAcceptedScore: 0


Judge Duck Online | 评测鸭在线
Server Time: 2026-04-07 01:46:36 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠