提交记录 8935


用户 题目 状态 得分 用时 内存 语言 代码长度
yzhang 1006. 【模板题】后缀排序 Wrong Answer 0 21.558 ms 2472 KB C++ 1.56 KB
提交时间 评测时间
2019-03-24 16:17:17 2020-08-01 01:26:49
#include <bits/stdc++.h>
#define N 100005
using namespace std;
inline void write(register int x)
{
    if(!x)putchar('0');if(x<0)x=-x,putchar('-');
    static int sta[20];register int tot=0;
    while(x)sta[tot++]=x%10,x/=10;
    while(tot)putchar(sta[--tot]+48);
}
char s[N];
int n,m;
int rak[N],tp[N],sa[N],tax[N],height[N];
inline void Qsort()
{
    for(register int i=1;i<=m;++i)
        tax[i]=0;
    for(register int i=1;i<=n;++i)
        ++tax[rak[i]];
    for(register int i=1;i<=m;++i)
        tax[i]+=tax[i-1];
    for(register int i=n;i>=1;--i)
        sa[tax[rak[tp[i]]]--]=tp[i];
}
inline void suffixsort()
{
    m=80;
    for(register int i=1;i<=n;++i)
        rak[i]=s[i]-'0',tp[i]=i;
    Qsort();
    for(register int w=1,p=0;p<n;m=p,w<<=1)
    {
        p=0;
        for(register int i=1;i<=w;++i)
            tp[++p]=n-w+i;
        for(register int i=1;i<=n;++i)
            if(sa[i]>w)
                tp[++p]=sa[i]-w;
        Qsort();
        swap(tp,rak);
        rak[sa[1]]=p=1;
        for(register int i=2;i<=n;++i)
            rak[sa[i]]=(tp[sa[i-1]]==tp[sa[i]]&&tp[sa[i-1]+w]==tp[sa[i]+w])?p:++p;
    }
    for(register int i=1;i<=n;++i)
        write(sa[i]),putchar(' ');
}
inline void getheight()
{
    int k=0;
    for(register int i=1;i<=n;++i)
    {
        if(k)
            --k;
        int j=sa[rak[i]-1];
        while(s[i+k]==s[j+k])
            ++k;
        height[rak[i]]=k;
    }
}
int main()
{
    scanf("%s",s+1);
    n=strlen(s+1);
    suffixsort();
    puts("");
    for(register int i=2;i<=n;++i)
         write(height[i]),putchar(' ');
    return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #1186 us836 KBWrong AnswerScore: 0

Subtask #1 Testcase #2186.78 us836 KBAcceptedScore: 100

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

Subtask #1 Testcase #4312.29 us836 KBWrong AnswerScore: 0

Subtask #1 Testcase #5313.12 us836 KBWrong AnswerScore: 0

Subtask #1 Testcase #6312.26 us836 KBWrong AnswerScore: 0

Subtask #1 Testcase #75.619 ms2 MB + 388 KBWrong AnswerScore: 0

Subtask #1 Testcase #821.558 ms2 MB + 420 KBWrong AnswerScore: 0

Subtask #1 Testcase #97.129 ms2 MB + 424 KBWrong AnswerScore: 0

Subtask #1 Testcase #104.731 ms1 MB + 884 KBWrong AnswerScore: 0

Subtask #1 Testcase #115.613 ms1 MB + 884 KBWrong AnswerScore: 0

Subtask #1 Testcase #1213.186 ms2 MB + 292 KBWrong AnswerScore: 0

Subtask #1 Testcase #1311.84 ms2 MB + 348 KBWrong AnswerScore: 0

Subtask #1 Testcase #149.295 ms2 MB + 424 KBWrong AnswerScore: 0

Subtask #1 Testcase #158.898 ms2 MB + 412 KBWrong AnswerScore: 0

Subtask #1 Testcase #1611.941 ms2 MB + 292 KBWrong AnswerScore: 0

Subtask #1 Testcase #1711.635 ms2 MB + 292 KBWrong AnswerScore: 0

Subtask #1 Testcase #1811.868 ms2 MB + 292 KBWrong AnswerScore: 0


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