【uoj #35】后缀排序
来源:互联网 发布:淘宝好评语50字以上 编辑:程序博客网 时间:2024/05/16 03:39
这是一道模板题
这是一道模板题。
读入一个长度为
除此之外为了进一步证明你确实有给后缀排序的超能力,请另外输出
直接上模板了……机房要关门了……我要吃饭了……
#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int MAXN = 100000 + 5;int sa[MAXN],rank[MAXN],tmp[MAXN];int n,k;char c[MAXN];bool cmp_sa(int a,int b){ if(rank[a] != rank[b]) return rank[a] < rank[b]; else { int x = a + k <= n ? rank[a + k] : -1; int y = b + k <= n ? rank[b + k] : -1; return x < y; }}void make_sa(char s[]){ for(int i = 0;i <= n;i ++) { rank[i] = i < n ? s[i] : -1; sa[i] = i; } for(k = 1;k <= n;k <<= 1) { sort(sa,sa + n + 1,cmp_sa); tmp[sa[0]] = 0; for(int i = 1;i <= n;i ++) tmp[sa[i]] = tmp[sa[i - 1]] + cmp_sa(sa[i - 1],sa[i]); for(int i = 0;i <= n;i ++) rank[i] = tmp[i]; } return;}int lcp[MAXN];void make_lcp(char s[]){ for(int i = 1;i < n;i ++) rank[sa[i]] = i; int h = 0; lcp[0] = 0; for(int i = 0;i < n;i ++) { int j = sa[rank[i] - 1]; if(h) h--; for(;i + h < n && j + h < n;h ++) if(s[i + h] != s[j + h]) break; lcp[rank[i] - 1] = h; } return;}int main(){ scanf("%s",c); n = strlen(c); make_sa(c); for(int i = 1;i <= n;i ++) printf("%d ",sa[i] + 1); puts(""); make_lcp(c); for(int i = 1;i < n;i ++) printf("%d ",lcp[i]); return 0;}
//2016.4.7才发现这个是CE的代码……
0 0
- uoj#35: 后缀排序
- 【uoj #35】后缀排序
- 【uoj 35】后缀排序
- 【UOJ 35】 后缀排序|后缀数组
- 【UOJ 35】 后缀排序|后缀数组 *2
- 【UOJ 35】 后缀排序|后缀数组 *3
- UOJ #35 后缀排序(后缀数组)
- UOJ#35 —— 后缀排序
- Uoj#35. 后缀排序
- uoj #35. 后缀排序
- uoj P35 后缀排序
- [省选前题目整理][UOJ 35]后缀排序(后缀数组)
- uoj#35. 后缀排序 后缀数组
- Uoj #35. 后缀排序(后缀数组)
- UOJ #35. 后缀排序(后缀数组模板题)
- UOJ #35. 后缀排序 后缀数组模板题
- UOJ #35. BZOJ 1031 后缀排序 后缀数组模板
- uoj 35 后缀数组first blood
- 音乐播放器中Service的使用
- PAT (Advanced Level) Practise1032 Sharing (25)
- POJ 1113
- Android中Service(服务)详解
- 笔记:batch normalization:accelerating deep network training by reducing internal covariate shift
- 【uoj #35】后缀排序
- Android数据存储的三种方式-SharedPrefrences,File,SQLite
- cc2530-关于Contiki系统的时钟
- 设计模式-命令模式(Go语言描述)
- 15级周测题
- UVA 11992,。。。伪-二维线段树
- Launchctl - mac下的运行管理器
- Linux内核分析:实验二
- <接上一篇> 动态规划一些变形 poj 1742 poj3046