提交记录 8678


用户 题目 状态 得分 用时 内存 语言 代码长度
LuoshuiTianyi 1006. 【模板题】后缀排序 Wrong Answer 0 46.896 ms 3124 KB C++ 1.16 KB
提交时间 评测时间
2019-03-03 11:20:02 2020-08-01 01:23:05
#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(int i=1;i<=M;i++)tag[i]=0;
    for(int i=1;i<=n;i++)tag[rk[i]]++;
    for(int i=1;i<=M;i++)tag[i]+=tag[i-1];
    for(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(int i=1;i<=n;i++)
        rk[i]=s[i]-'0',tmp[i]=i;
    Sort();
    for(int len=1;cnt<n;len<<=1,M=cnt)
    {
        cnt=0;
        for(int i=n-len+1;i<=n;i++)tmp[++cnt]=i;
        for(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(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(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(int i=1;i<=n;i++)
        printf("%d ",sa[i]);
    cout<<endl;
    for(int i=2;i<=n;i++)
        printf("%d ",height[i]);
}

CompilationN/AN/ACompile OKScore: N/A

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

Subtask #1 Testcase #2195.99 us836 KBAcceptedScore: 100

Subtask #1 Testcase #3196.91 us836 KBAcceptedScore: 0

Subtask #1 Testcase #4317.83 us836 KBAcceptedScore: 0

Subtask #1 Testcase #5317.26 us836 KBAcceptedScore: 0

Subtask #1 Testcase #6317.5 us836 KBAcceptedScore: 0

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

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

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

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

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

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

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

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

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

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

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

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


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