提交记录 7149


用户 题目 状态 得分 用时 内存 语言 代码长度
Komachi 1006. 【模板题】后缀排序 Wrong Answer 0 20.239 ms 2740 KB C++11 1.23 KB
提交时间 评测时间
2018-12-28 10:59:08 2020-08-01 01:00:41
#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

void Wt(int x){
	static char stk[14],l;
	do stk[++l]=x%10^48;
	while(x/=10);
	while(l)putchar(stk[l--]);
}
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)Wt(SA[i]),putchar(" \n"[i==n]);
	REP(i,2,n+1)Wt(Ht[i]),putchar(" \n"[i==n]);
	
	return 0;
}

CompilationN/AN/ACompile OKScore: N/A

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

Subtask #1 Testcase #242.43 us56 KBAcceptedScore: 100

Subtask #1 Testcase #336.5 us56 KBAcceptedScore: 0

Subtask #1 Testcase #444.54 us56 KBAcceptedScore: 0

Subtask #1 Testcase #536.84 us56 KBAcceptedScore: 0

Subtask #1 Testcase #638.28 us56 KBAcceptedScore: 0

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

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

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

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

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

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

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

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

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

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

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

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


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