注意输出是80字符个一行!!

首先贪心很显然,就是两头尽量拿小的。

然后需要处理两头一样的情况,显然是选字典序小的一串,把数组反着接在原数组后面,然后跑sa,判断的时候直接比较rk数组

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N=300005;
int n,sa[N],wa[N],wb[N],wv[N],wsu[N],rk[N];
char c[N],s[N],ch[10];
bool cmp(int *r,int a,int b,int l)
{
return r[a]==r[b]&&r[a+l]==r[b+l];
}
void saa(char *r,int n,int m)
{
int *x=wa,*y=wb;
for(int i=0;i<m;i++)
wsu[i]=0;
for(int i=0;i<n;i++)
wsu[x[i]=r[i]]++;
for(int i=1;i<m;i++)
wsu[i]+=wsu[i-1];
for(int i=n-1;i>=0;i--)
sa[--wsu[x[i]]]=i;
for(int j=1,p=1;j<=n&&p<=n;j<<=1,m=p)
{
p=0;
for(int i=n-j;i<n;i++)
y[p++]=i;
for(int i=0;i<n;i++)
if(sa[i]>=j)
y[p++]=sa[i]-j;
for(int i=0;i<n;i++)
wv[i]=x[y[i]];
for(int i=0;i<m;i++)
wsu[i]=0;
for(int i=0;i<n;i++)
wsu[wv[i]]++;
for(int i=1;i<m;i++)
wsu[i]+=wsu[i-1];
for(int i=n-1;i>=0;i--)
sa[--wsu[wv[i]]]=y[i];
swap(x,y);
x[sa[0]]=0;
p=1;
for(int i=1;i<n;i++)
x[sa[i]]=cmp(y,sa[i-1],sa[i],j)?p-1:p++;
}
for(int i=0;i<n;i++)
rk[sa[i]]=i;
}
int main()
{
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%s",ch);
c[n+n-i]=c[i]=ch[0];
}
c[n]='a'-1;
saa(c,2*n+1,200);
int l=0,r=n+1;
for(int i=0;i<n;i++)
{
if(rk[l]<rk[r])
putchar(c[l++]);
else
putchar(c[r++]);
if(!((i+1)%80))
putchar('\n');
}
return 0;
}
/*
6
A
C
D
B
C
B
*/

最新文章

  1. [Django]Django1.8修改MySQL已存在表的问题?
  2. 《深度探索C++对象模型(Inside The C++ Object Model )》学习笔记
  3. FreeRTOS和Ucos在打开关闭中断的区别
  4. 配置ogg异构oracle-mysql 双向同步注意事项
  5. MFC ADO连接Oracle12c数据库 服务端配置
  6. Setting composer minimum stability for your application
  7. 安卓java设置字体颜色
  8. Impala与Hive的比較
  9. ACE_Time_Value
  10. C#在自定义事件里传递自定义数据,使用EventArgs的姿势
  11. mysql故障解决笔记
  12. RPM管理工具
  13. spring boot 2使用Mybatis多表关联查询
  14. Java程序第二次作业
  15. idea上使用maven模块开发
  16. 关于购物车程序的Python实现
  17. vue todolist 1.0
  18. Ubuntu下opencv的安装及IDEA开发配置
  19. oracle网页客户端工具
  20. 结对作业——随机生成四则运算(Core 第7组)

热门文章

  1. topcoder 650 srm div2 1000pts
  2. mongodb按照日期分组统计
  3. burpsuite破解版
  4. jquery在ajax新加入的元素后绑定事件click
  5. 基于RTP的h.264视频传输系统设计(一)
  6. A + B Problem II(杭电1002)
  7. PHP中常见的header类型
  8. Koa2学习(四)POST请求
  9. 滚动条样式优化(CSS3自定义滚动条样式 -webkit-scrollbar)
  10. ubuntu12.04安装tftp,配置,修改目录,错误类型