提交记录 7147


用户 题目 状态 得分 用时 内存 语言 代码长度
Komachi 1006. 【模板题】后缀排序 Wrong Answer 0 54.357 ms 2740 KB C++11 1.13 KB
提交时间 评测时间
2018-12-28 10:52:16 2020-08-01 01:00:39
#include <cstdio>
#include <cstring>
#include <iostream>

using namespace std;

#define Uni All Right
#define REP(i,a,b) for(int i=(a),i##_end_=(b);i<i##_end_;++i)
#define DREP(i,a,b) for(int i=(a),i##_end_=(b);i>i##_end_;--i)
#define LREP(i,a) for(int i=Head[a];i;i=Next[i])
#define LL long long

static const int M=100004;
int n,k,Cnt[M];
int SA[M],Ht[M<<1],Rk[M<<1];
char S[M];
void Init(){
	int *A=Rk,*B=Ht;
	REP(i,1,n+1)++Cnt[A[i]=(S[i]-'a'+1)];
	REP(i,1,233)Cnt[i]+=Cnt[i-1];
	REP(i,1,n+1)SA[Cnt[A[i]]--]=i;
	
	for(int v=1;v<=n;v<<=1){
		int m=0;
		REP(i,n-v+1,n+1)B[++m]=i;
		REP(i,1,n+1){
			if(SA[i]>v)B[++m]=SA[i]-v;
			Cnt[A[SA[i]]]=i;
		}
		DREP(i,n,0)SA[Cnt[A[B[i]]]--]=B[i];
		
		B[SA[1]]=m=1;
		REP(i,2,n+1)B[SA[i]]=B[SA[i-1]]+(A[SA[i]]!=A[SA[i-1]] || A[SA[i]+v]!=A[SA[i-1]+v]);
		swap(A,B);
		if(A[SA[n]]==n)break;
	}
	
	REP(i,1,n+1)Rk[SA[i]]=i;
	int h=0,j;
	REP(i,1,n+1)if((j=Rk[i])>1){
		h?--h:0;
		j=SA[j-1];
		while(i+h<=n && j+h<=n && S[i+h]==S[j+h])++h;
		Ht[Rk[i]]=h;
	}
}
int main(){
	scanf("%s",S+1);
	n=strlen(S+1);
	Init();
	REP(i,1,n+1)printf("%d%c",SA[i]," \n"[i==n]);
	REP(i,2,n+1)printf("%d%c",Ht[i]," \n"[i==n]);
	
	return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #136.09 us56 KBWrong AnswerScore: -100

Subtask #1 Testcase #237.44 us56 KBAcceptedScore: 100

Subtask #1 Testcase #336.57 us56 KBAcceptedScore: 0

Subtask #1 Testcase #442.68 us56 KBAcceptedScore: 0

Subtask #1 Testcase #542.18 us56 KBAcceptedScore: 0

Subtask #1 Testcase #642.25 us56 KBAcceptedScore: 0

Subtask #1 Testcase #740.504 ms2 MB + 384 KBAcceptedScore: 0

Subtask #1 Testcase #854.357 ms2 MB + 608 KBAcceptedScore: 0

Subtask #1 Testcase #942.848 ms2 MB + 472 KBAcceptedScore: 0

Subtask #1 Testcase #1027.732 ms1 MB + 640 KBAcceptedScore: 0

Subtask #1 Testcase #1128.3 ms1 MB + 684 KBAcceptedScore: 0

Subtask #1 Testcase #1246.32 ms2 MB + 672 KBAcceptedScore: 0

Subtask #1 Testcase #1345.517 ms2 MB + 692 KBAcceptedScore: 0

Subtask #1 Testcase #1443.327 ms2 MB + 500 KBAcceptedScore: 0

Subtask #1 Testcase #1543.35 ms2 MB + 504 KBAcceptedScore: 0

Subtask #1 Testcase #1646.233 ms2 MB + 672 KBAcceptedScore: 0

Subtask #1 Testcase #1746.482 ms2 MB + 672 KBAcceptedScore: 0

Subtask #1 Testcase #1846.568 ms2 MB + 672 KBAcceptedScore: 0


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