提交记录 7945


用户 题目 状态 得分 用时 内存 语言 代码长度
sherlock 1006. 【模板题】后缀排序 Wrong Answer 0 44.034 ms 9312 KB C++ 905 B
提交时间 评测时间
2019-01-25 20:34:37 2020-08-01 01:10:50
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cctype>
using namespace std;
const int MAXN=1000010;
#define rg register int
char s[MAXN];
int c[MAXN],x[MAXN],y[MAXN],n,m,sa[MAXN];
inline void suffix_sort()
{
	n=strlen(s+1);
	m='z';
	for(rg i=1;i<=n;i++)c[x[i]=s[i]]++;
	for(rg i=1;i<=m;i++)c[i]+=c[i-1];
	for(rg i=n;i;i--)sa[c[x[i]]--]=i;
	for(rg k=1;k<=n;k<<=1)
	{
		rg num=0;
		for(rg i=n-k+1;i<=n;i++)y[++num]=i;
		for(rg i=1;i<=n;i++)
			if(sa[i]>k)y[++num]=sa[i]-k;
		for(rg i=1;i<=m;i++)c[i]=0;
		for(rg i=1;i<=n;i++)c[x[i]]++;
		for(rg i=1;i<=m;i++)c[i]+=c[i-1];
		for(rg i=n;i;i--)sa[c[x[y[i]]]--]=y[i],y[i]=0;
		swap(x,y);
		x[sa[1]]=num=1;
		for(rg 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;
	}
}
int main()
{
	scanf("%s",s+1);
	suffix_sort();
	for(rg i=1;i<=n;i++)printf("%d ",sa[i]);
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #11.567 ms7 MB + 696 KBWrong AnswerScore: 0

Subtask #1 Testcase #21.573 ms7 MB + 696 KBWrong AnswerScore: 0

Subtask #1 Testcase #31.566 ms7 MB + 696 KBWrong AnswerScore: 0

Subtask #1 Testcase #42.92 ms7 MB + 696 KBWrong AnswerScore: 0

Subtask #1 Testcase #52.918 ms7 MB + 696 KBWrong AnswerScore: 0

Subtask #1 Testcase #62.917 ms7 MB + 696 KBWrong AnswerScore: 0

Subtask #1 Testcase #719.729 ms9 MB + 56 KBWrong AnswerScore: 0

Subtask #1 Testcase #844.034 ms9 MB + 92 KBWrong AnswerScore: 0

Subtask #1 Testcase #922.402 ms9 MB + 96 KBWrong AnswerScore: 0

Subtask #1 Testcase #1016.059 ms8 MB + 620 KBWrong AnswerScore: 0

Subtask #1 Testcase #1117.587 ms8 MB + 620 KBWrong AnswerScore: 0

Subtask #1 Testcase #1235.991 ms8 MB + 988 KBWrong AnswerScore: 0

Subtask #1 Testcase #1333.492 ms9 MB + 16 KBWrong AnswerScore: 0

Subtask #1 Testcase #1425.926 ms9 MB + 96 KBWrong AnswerScore: 0

Subtask #1 Testcase #1525.555 ms9 MB + 80 KBWrong AnswerScore: 0

Subtask #1 Testcase #1634.708 ms8 MB + 988 KBWrong AnswerScore: 0

Subtask #1 Testcase #1734.424 ms8 MB + 988 KBWrong AnswerScore: 0

Subtask #1 Testcase #1834.638 ms8 MB + 988 KBWrong AnswerScore: 0


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