提交记录 8679


用户 题目 状态 得分 用时 内存 语言 代码长度
LuoshuiTianyi 1006. 【模板题】后缀排序 Wrong Answer 0 46.9 ms 3124 KB C++ 1.27 KB
提交时间 评测时间
2019-03-03 11:42:57 2020-08-01 01:23:08
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,M,cnt,rk[100001],tmp[100001],sa[100001],tag[100001],height[100001];
long long ans;
char s[100002];
void Sort()
{
    for(register int i=1;i<=M;i++)tag[i]=0;
    for(register int i=1;i<=n;i++)tag[rk[i]]++;
    for(register int i=1;i<=M;i++)tag[i]+=tag[i-1];
    for(register int i=n;i>=1;i--)sa[tag[rk[tmp[i]]]--]=tmp[i];
}
int main()
{
    scanf("%s",s+1);
    n=strlen(s+1);
    M=76;
    for(register int i=1;i<=n;i++)
        rk[i]=s[i]-'0',tmp[i]=i;
    Sort();
    for(register int len=1;cnt<n;len<<=1,M=cnt)
    {
        cnt=0;
        for(register int i=n-len+1;i<=n;i++)tmp[++cnt]=i;
        for(register int i=1;i<=n;i++)
            if(sa[i]>len)
                tmp[++cnt]=sa[i]-len;
        Sort();
        swap(rk,tmp);
        rk[sa[1]]=cnt=1;
        for(register int i=2;i<=n;i++)
            rk[sa[i]]=tmp[sa[i]]==tmp[sa[i-1]]&&tmp[sa[i]+len]==tmp[sa[i-1]+len]?cnt:++cnt;
    }
    for(register int i=1,len=0;i<=n;i++)
    {
        if(len)len--;
        int now=sa[rk[i]-1];
        while(s[now+len]==s[i+len])len++;
        height[rk[i]]=len;
    }
    for(register int i=1;i<=n;i++)
        printf("%d ",sa[i]);
    cout<<endl;
    for(register int i=2;i<=n;i++)
        printf("%d ",height[i]);
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #1187.25 us836 KBWrong AnswerScore: -100

Subtask #1 Testcase #2188.54 us836 KBAcceptedScore: 100

Subtask #1 Testcase #3188.21 us836 KBAcceptedScore: 0

Subtask #1 Testcase #4317.04 us836 KBAcceptedScore: 0

Subtask #1 Testcase #5316.39 us836 KBAcceptedScore: 0

Subtask #1 Testcase #6317.13 us836 KBAcceptedScore: 0

Subtask #1 Testcase #729.985 ms2 MB + 772 KBAcceptedScore: 0

Subtask #1 Testcase #846.9 ms2 MB + 992 KBAcceptedScore: 0

Subtask #1 Testcase #932.369 ms2 MB + 860 KBAcceptedScore: 0

Subtask #1 Testcase #1021.156 ms2 MB + 144 KBAcceptedScore: 0

Subtask #1 Testcase #1121.938 ms2 MB + 184 KBAcceptedScore: 0

Subtask #1 Testcase #1238.425 ms3 MB + 32 KBAcceptedScore: 0

Subtask #1 Testcase #1337.132 ms3 MB + 52 KBAcceptedScore: 0

Subtask #1 Testcase #1433.694 ms2 MB + 888 KBAcceptedScore: 0

Subtask #1 Testcase #1533.357 ms2 MB + 892 KBAcceptedScore: 0

Subtask #1 Testcase #1637.243 ms3 MB + 32 KBAcceptedScore: 0

Subtask #1 Testcase #1736.79 ms3 MB + 32 KBAcceptedScore: 0

Subtask #1 Testcase #1837.021 ms3 MB + 32 KBAcceptedScore: 0


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