提交记录 8448


用户 题目 状态 得分 用时 内存 语言 代码长度
ouuan 1006. 【模板题】后缀排序 Wrong Answer 0 71.676 ms 13612 KB C++11 1.08 KB
提交时间 评测时间
2019-02-17 17:09:58 2020-08-01 01:19:19
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;

const int N=1000010;

char s[N];
int n,sa[N],rk[N<<1],oldrk[N<<1],id[N],cnt[N];

int main()
{
    int i,m,p,w;
    
    scanf("%s",s+1);
    n=strlen(s+1);
    m=max(n,300);
    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)
    {
        memset(cnt,0,sizeof(cnt));
        for (i=1;i<=n;++i) id[i]=sa[i];
        for (i=1;i<=n;++i) ++cnt[rk[id[i]+w]];
        for (i=1;i<=m;++i) cnt[i]+=cnt[i-1];
        for (i=n;i>=1;--i) sa[cnt[rk[id[i]+w]]--]=id[i];
        memset(cnt,0,sizeof(cnt));
        for (i=1;i<=n;++i) id[i]=sa[i];
        for (i=1;i<=n;++i) ++cnt[rk[id[i]]];
        for (i=1;i<=m;++i) cnt[i]+=cnt[i-1];
        for (i=n;i>=1;--i) sa[cnt[rk[id[i]]]--]=id[i];
        memcpy(oldrk,rk,sizeof(oldrk));
        for (p=0,i=1;i<=n;++i) rk[sa[i]]=oldrk[sa[i]]==oldrk[sa[i-1]]&&oldrk[sa[i]+w]==oldrk[sa[i-1]+w]?p:++p;
    }
    
    for (i=1;i<=n;++i) printf("%d ",sa[i]);
    
    return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #135.5 us52 KBWrong AnswerScore: 0

Subtask #1 Testcase #22.136 ms11 MB + 504 KBWrong AnswerScore: 0

Subtask #1 Testcase #32.084 ms11 MB + 504 KBWrong AnswerScore: 0

Subtask #1 Testcase #45.481 ms11 MB + 504 KBWrong AnswerScore: 0

Subtask #1 Testcase #55.443 ms11 MB + 504 KBWrong AnswerScore: 0

Subtask #1 Testcase #66.602 ms11 MB + 504 KBWrong AnswerScore: 0

Subtask #1 Testcase #771.676 ms13 MB + 300 KBWrong AnswerScore: 0

Subtask #1 Testcase #867.369 ms13 MB + 300 KBWrong AnswerScore: 0

Subtask #1 Testcase #970.049 ms13 MB + 300 KBWrong AnswerScore: 0

Subtask #1 Testcase #1048.813 ms12 MB + 684 KBWrong AnswerScore: 0

Subtask #1 Testcase #1147.945 ms12 MB + 684 KBWrong AnswerScore: 0

Subtask #1 Testcase #1254.57 ms13 MB + 300 KBWrong AnswerScore: 0

Subtask #1 Testcase #1353.937 ms13 MB + 300 KBWrong AnswerScore: 0

Subtask #1 Testcase #1468.966 ms13 MB + 300 KBWrong AnswerScore: 0

Subtask #1 Testcase #1568.303 ms13 MB + 300 KBWrong AnswerScore: 0

Subtask #1 Testcase #1654.534 ms13 MB + 300 KBWrong AnswerScore: 0

Subtask #1 Testcase #1755.022 ms13 MB + 300 KBWrong AnswerScore: 0

Subtask #1 Testcase #1855.424 ms13 MB + 300 KBWrong AnswerScore: 0


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