题目背景

这是一道模版题。

题目描述

读入一个长度为 nn 的由大小写英文字母或数字组成的字符串,请把这个字符串的所有非空后缀按字典序从小到大排序,然后按顺序输出后缀的第一个字符在原串中的位置。位置编号为 11 到 nn。

输入输出格式

输入格式:

一行一个长度为 nn 的仅包含大小写英文字母或数字的字符串。

输出格式:

一行,共n个整数,表示答案。

输入输出样例

输入样例#1:

ababa
输出样例#1:

5 3 1 4 2

说明

n <= 10^6n<=10​6​​

看了一下午的后缀数组

基数排序的思想我懂啊。,

倍增的思想我懂啊。。

后缀数组的思想我也懂啊。。

为毛代码一行都看不懂啊。。。。。。。。。。。。。。。。。。。。。。。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int MAXN=;
void read(int &n)
{
char c='+';int x=;bool flag=;
while(c<''||c>''){c=getchar();if(c=='-')flag=;}
while(c>=''&&c<=''){x=x*+(c-);c=getchar();}
flag==?n=-x:n=x;
}
int tax[MAXN];// 基数排序的辅助数组
int tp[MAXN];//基数排序的第二关键字
int a[MAXN];// 字符串数组
int sa[MAXN];//
int rak[MAXN];
int n,m;
void qsort()
{
for(int i=;i<=m;i++) tax[i]=;
for(int i=;i<=n;i++) tax[rak[tp[i]]]++;
for(int i=;i<=m;i++) tax[i]+=tax[i-];
for(int i=n;i>=;i--) sa[tax[rak[tp[i]]]--]=tp[i];
}
int comp(int *f,int x,int y,int l)
{
return (f[x]==f[y]&&f[x+l]==f[y+l]);
}
void suffix_ar()
{
for(int i=;i<=n;i++)
rak[i]=a[i],tp[i]=i;
m=,qsort();
for(int w=,p=,i;p<n;w+=w,m=p)
{
for(p=,i=n-w+;i<=n;i++)
tp[++p]=i;
for(int i=;i<=n;i++)
if(sa[i]>w)
tp[++p]=sa[i]-w;
qsort(),swap(rak,tp),rak[sa[]]=p=;
for(int i=;i<=n;i++)
rak[sa[i]]=comp(tp,sa[i],sa[i-],w)? p:++p;
}
for(int i=;i<=n;i++)
printf("%d ",sa[i]);
}
int main()
{
string s;
cin>>s;
n=s.length();
for(int i=;i<(s.length());i++)
a[i+]=s[i]-;
suffix_ar();
return ;
}

最新文章

  1. python学习笔记-进程线程
  2. C#中Directory.GetFiles() 函数的使用
  3. 【读书笔记】iOS-程序进入到后台
  4. HTML 学习笔记 CSS样式(背景)
  5. 关于 xcode5 真机调试 的 no matching provisioning profiles found
  6. C#:org.in2bits.MyXls 文本格式日期 转换,以及设置单元格格式,保留两位小数点
  7. MySQL中distinct和group by性能比较[转]
  8. python的使用环境总结
  9. [z]Google SPDY介绍
  10. iOS开发——实用篇Swift篇&amp;保存图片到相册
  11. latex引用多篇参考文献
  12. mysql与java数据类型对应关系
  13. Sql缓存依赖--数据库缓存
  14. 解决Eclipse无法添加Tomcat服务器的问题
  15. 原理图及PCB设计
  16. 利用VNC远程登录Linux服务器简易版
  17. MySQL备份常用命令总结
  18. Integration between SharePoint 2013 and CRM 2013 (On-Premise)
  19. [Codeforces178F2]Representative Sampling
  20. 通用订单搜索的API设计得失录

热门文章

  1. 跨域-jsonp、cors、iframe、document.domain、postMessage()
  2. 使用最新vue_cli+webpack搭建的模版
  3. SQL SERVER中的sys.objects和sysobjects的区别
  4. Caffe Batch Normalization推导
  5. github踩坑之git命令收集与整理(windows)
  6. 浅谈AVL树,红黑树,B树,B+树原理及应用
  7. CDR X7 限时3折618年中大促,是时候出手了!
  8. post数据html数据获取危险处理办法
  9. 关于mysql无法添加中文数据的问题以及解决方案(转载)
  10. 一些html5