提交记录 31276


用户 题目 状态 得分 用时 内存 语言 代码长度
saffah_dsh_260814 1006. 【模板题】后缀排序 Wrong Answer 0 106.57 ms 3324 KB C++ 1.18 KB
提交时间 评测时间
2026-08-14 01:10:57 2026-08-14 01:11:02
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
int main() {
    char buf[100010];
    if (!fgets(buf, sizeof(buf), stdin)) return 0;
    string s(buf);
    while (!s.empty() && (s.back()=='\n'||s.back()=='\r')) s.pop_back();
    int n = s.size();
    vector<int> sa(n), rnk(n), tmp(n);
    for (int i=0;i<n;i++){sa[i]=i;rnk[i]=s[i];}
    for (int k=1;k<n;k*=2){
        auto cmp=[&](int x,int y){
            if(rnk[x]!=rnk[y])return rnk[x]<rnk[y];
            int rx=x+k<n?rnk[x+k]:-1;
            int ry=y+k<n?rnk[y+k]:-1;
            return rx<ry;
        };
        sort(sa.begin(),sa.end(),cmp);
        tmp[sa[0]]=0;
        for(int i=1;i<n;i++)tmp[sa[i]]=tmp[sa[i-1]]+(cmp(sa[i-1],sa[i])?1:0);
        swap(tmp,rnk);
    }
    vector<int> r(n);
    for(int i=0;i<n;i++)r[sa[i]]=i;
    vector<int> h(n,0);
    int k=0;
    for(int i=0;i<n;i++){
        if(r[i]==0){k=0;continue;}
        if(k)k--;
        int j=sa[r[i]-1];
        while(i+k<n&&j+k<n&&s[i+k]==s[j+k])k++;
        h[r[i]]=k;
    }
    for(int i=0;i<n;i++)printf("%d%c",sa[i]+1,i==n-1?'\n':' ');
    for(int i=1;i<n;i++)printf("%d%c",h[i],i==n-1?'\n':' ');
    return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #121.41 us120 KBWrong AnswerScore: 0

Subtask #1 Testcase #221.6 us120 KBAcceptedScore: 0

Subtask #1 Testcase #320.66 us120 KBAcceptedScore: 0

Subtask #1 Testcase #428.03 us120 KBAcceptedScore: 0

Subtask #1 Testcase #526.1 us120 KBAcceptedScore: 0

Subtask #1 Testcase #629.51 us120 KBAcceptedScore: 0

Subtask #1 Testcase #791.957 ms2 MB + 896 KBAcceptedScore: 0

Subtask #1 Testcase #8106.57 ms3 MB + 60 KBAcceptedScore: 0

Subtask #1 Testcase #995.229 ms2 MB + 948 KBAcceptedScore: 0

Subtask #1 Testcase #1056.514 ms1 MB + 968 KBAcceptedScore: 0

Subtask #1 Testcase #1156.782 ms1 MB + 1008 KBAcceptedScore: 0

Subtask #1 Testcase #1298.623 ms3 MB + 252 KBAcceptedScore: 0

Subtask #1 Testcase #1396.233 ms3 MB + 220 KBAcceptedScore: 0

Subtask #1 Testcase #1494.225 ms2 MB + 976 KBAcceptedScore: 0

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

Subtask #1 Testcase #1697.594 ms3 MB + 252 KBAcceptedScore: 0

Subtask #1 Testcase #1799.402 ms3 MB + 252 KBAcceptedScore: 0

Subtask #1 Testcase #1898.811 ms3 MB + 252 KBAcceptedScore: 0


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