提交记录 17644


用户 题目 状态 得分 用时 内存 语言 代码长度
1443356159 1006. 【模板题】后缀排序 Wrong Answer 0 70.781 ms 18376 KB C++ 1.05 KB
提交时间 评测时间
2022-04-13 10:42:10 2022-04-13 10:42:15
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
const int N=2000010;
int tax[N],x[N],y[N],n,m,num,sa[N],rk[N],h[N];
char S[N];
void suffix_sort()  {
	m=256;
	for(int i=1;i<=n;++i)++tax[x[i]=S[i]];
	for(int i=2;i<=m;++i)tax[i]+=tax[i-1];
	for(int i=1;i<=n;++i)sa[tax[x[i]]--]=i;
	for(int k=1;k<=n;k<<=1) {
		num=0;
		for(int i=n-k+1;i<=n;++i)y[++num]=i;
		for(int i=1;i<=n;++i)if(sa[i]>k)y[++num]=sa[i]-k;
		for(int i=1;i<=m;++i)tax[i]=0;
		for(int i=1;i<=n;++i)++tax[x[i]];
		for(int i=2;i<=m;++i)tax[i]+=tax[i-1];
		for(int i=n;i>=1;--i)sa[tax[x[y[i]]]--]=y[i],y[i]=0;
		num=1;
		swap(x,y);x[sa[1]]=1;
		for(int i=2;i<=n;++i)
		x[sa[i]]=(y[sa[i]]==y[sa[i-1]]&&y[sa[i]+k]==y[sa[i-1]+k])?num:++num;
		if(num==n)break;
		m=num;
	}
	for(int i=1;i<=n;++i)rk[sa[i]]=i;
	for(int i=1,j;i<=n;++i) {
		j=h[rk[i-1]]-1;
		if(j<0)j=0;
		while(S[i+j]==S[sa[rk[i]-1]+j])++j;
		h[rk[i]]=j;
	}
}
int main() {
	scanf("%s",S+1);
	n=strlen(S+1);
	suffix_sort();
	for(int i=1;i<=n;++i)printf("%d ",sa[i]);puts("");
	for(int i=2;i<=n;++i)printf("%d ",h[i]);
	return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #13.092 ms15 MB + 320 KBWrong AnswerScore: -100

Subtask #1 Testcase #23.101 ms15 MB + 320 KBAcceptedScore: 100

Subtask #1 Testcase #33.098 ms15 MB + 320 KBAcceptedScore: 0

Subtask #1 Testcase #45.943 ms15 MB + 320 KBAcceptedScore: 0

Subtask #1 Testcase #55.942 ms15 MB + 320 KBAcceptedScore: 0

Subtask #1 Testcase #65.938 ms15 MB + 320 KBAcceptedScore: 0

Subtask #1 Testcase #735.864 ms17 MB + 664 KBAcceptedScore: 0

Subtask #1 Testcase #870.781 ms17 MB + 884 KBAcceptedScore: 0

Subtask #1 Testcase #940.979 ms17 MB + 752 KBAcceptedScore: 0

Subtask #1 Testcase #1029.689 ms16 MB + 908 KBAcceptedScore: 0

Subtask #1 Testcase #1131.805 ms16 MB + 948 KBAcceptedScore: 0

Subtask #1 Testcase #1263.419 ms17 MB + 948 KBAcceptedScore: 0

Subtask #1 Testcase #1359.361 ms17 MB + 968 KBAcceptedScore: 0

Subtask #1 Testcase #1445.104 ms17 MB + 780 KBAcceptedScore: 0

Subtask #1 Testcase #1544.78 ms17 MB + 784 KBAcceptedScore: 0

Subtask #1 Testcase #1662.116 ms17 MB + 948 KBAcceptedScore: 0

Subtask #1 Testcase #1762 ms17 MB + 948 KBAcceptedScore: 0

Subtask #1 Testcase #1862.177 ms17 MB + 948 KBAcceptedScore: 0


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