提交记录 6607


用户 题目 状态 得分 用时 内存 语言 代码长度
Moon 1006. 【模板题】后缀排序 Wrong Answer 0 276.165 ms 1832 KB C++ 1.43 KB
提交时间 评测时间
2018-10-30 20:14:05 2020-08-01 00:46:44
//#include <bits/stdc++.h>
#include <cstdio>
#include <algorithm>
#include <iostream>
#include <cstring>
#include <limits>
#include <map>
#include <vector>
#include <queue> 
#define P pair<int ,int >
#define pb push_back
#define LL long long
#define ft first
#define sd second
#define mp(x,y) make_pair(x,y)
#define db double
//#define int LL
using namespace std;
const int N   = 1e5+233;
//const int mod = ;
const int INF =numeric_limits<int >::max();

#define rep(i,x,y) for (int i=x;i<=y;++i)

struct suffix_array
{
	static const int M=300;
	int cnt[M],rk[N<<1],sa[N<<1],h[N<<1],n,m,p,i,j,k,tp[N];
	int *x=rk,*y=tp;
	char str[N<<1];
	void Sort()
	{	
		memset(cnt,0,sizeof(cnt)) ;
		rep(i,1,n) ++cnt[x[y[i]]];
		rep(i,1,m) cnt[i]+=cnt[i-1];
		for (int i=n;i>=1;--i)
		  sa[ cnt[x[y[i]]]--] =y[i];
	}
	int cmp(int *f,int x,int y,int w){return f[x]==f[y]&&f[x+w]==f[y+w];}
	void SA()
	{
		rep(i,1,n) x[i]=str[i],y[i]=i;
		m=256;Sort();
		for (int w=1;w<=n;w<<=1)
		{
			p=0;
			rep(i,n-w+1,n) y[++p]=i;
			rep(i,1,n) if (sa[i]>w) y[++p]=sa[i]-w;
			Sort();
			swap(x,y);
			x[sa[1]]=p=1;
			rep(i,2,n) 
			  x[sa[i]]=cmp(y,sa[i],sa[i-1],w) ?p :++p;
		}
		rep(i,1,n) rk[sa[i]]=i;
		int j,k=0;
		for (int i=1;i<=n;h[rk[i++]]=k)
		  for (k ? --k :k,j=sa[rk[i] -1];  str[j+k]==str[i+k];++k);
	}
}S;

signed main()
{
	scanf("%s",S.str+1);
	S.n=strlen(S.str+1);
	S.SA();
	rep(i,1,S.n)  printf("%d ",S.sa[i]);
	printf("\n");
	rep(i,2,S.n) printf("%d ",S.h[i]);
	return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #138.15 us56 KBWrong AnswerScore: 0

Subtask #1 Testcase #244.56 us56 KBAcceptedScore: 100

Subtask #1 Testcase #343.36 us56 KBAcceptedScore: 0

Subtask #1 Testcase #444.18 us56 KBAcceptedScore: 0

Subtask #1 Testcase #542.92 us56 KBAcceptedScore: 0

Subtask #1 Testcase #643.91 us56 KBAcceptedScore: 0

Subtask #1 Testcase #7276.165 ms1 MB + 324 KBRuntime ErrorScore: -100

Subtask #1 Testcase #8275.213 ms1 MB + 360 KBRuntime ErrorScore: 0

Subtask #1 Testcase #9275.21 ms1 MB + 340 KBRuntime ErrorScore: 0

Subtask #1 Testcase #10266.794 ms1 MB + 100 KBRuntime ErrorScore: 0

Subtask #1 Testcase #11266.688 ms1 MB + 148 KBRuntime ErrorScore: 0

Subtask #1 Testcase #12264.858 ms1 MB + 808 KBRuntime ErrorScore: 0

Subtask #1 Testcase #13265.269 ms1 MB + 756 KBRuntime ErrorScore: 0

Subtask #1 Testcase #14197.034 ms1 MB + 316 KBRuntime ErrorScore: 0

Subtask #1 Testcase #15274.296 ms1 MB + 336 KBRuntime ErrorScore: 0

Subtask #1 Testcase #16265.196 ms1 MB + 584 KBRuntime ErrorScore: 0

Subtask #1 Testcase #17270.021 ms1 MB + 436 KBRuntime ErrorScore: 0

Subtask #1 Testcase #18269.901 ms1 MB + 428 KBRuntime ErrorScore: 0


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