【bzoj 4319】Suffix reconstruction(后缀数组相关)
2018-01-06 10:40
225 查看
传送门biu~
先通过sa数组求rank数组。只有在ranksai−1+1>ranksai+1时,ssai必须大于ssai−1其余情况都可以相等。
先通过sa数组求rank数组。只有在ranksai−1+1>ranksai+1时,ssai必须大于ssai−1其余情况都可以相等。
#include<bits/stdc++.h> using namespace std; int n,now,sa[500005],rank[500005]; char s[500005]; int main(){ scanf("%d",&n); for(int i=1;i<=n;++i) scanf("%d",&sa[i]); for(int i=1;i<=n;++i) rank[sa[i]]=i; s[sa[1]]='a'; for(int i=2;i<=n;++i){ if(rank[sa[i-1]+1]>rank[sa[i]+1]){ if(++now==26){ printf("-1"); return 0; } } s[sa[i]]='a'+now; } for(int i=1;i<=n;++i) printf("%c",s[i]); return 0; }
相关文章推荐
- BZOJ.4319.[cerc2008]Suffix reconstruction(后缀数组 构造 贪心)
- 【bzoj 4104】解密运算(后缀数组相关)
- 【BZOJ4319】cerc2008 Suffix reconstruction【构造】【后缀数组】
- bzoj 1640||1692: [Usaco2007 Dec]队列变换【后缀数组】
- BZOJ 1717: [Usaco2006 Dec]Milk Patterns 产奶的模式( 二分答案 + 后缀数组 )
- 【bzoj4698】[Sdoi2008] Sandy的卡片 后缀数组
- BZOJ_2946_[Poi2000]公共串_后缀数组+二分答案
- 【bzoj2551】【外星联络】【后缀数组】
- BZOJ 1692 [Usaco2007 Dec]队列变换 暴力(正解后缀数组)
- BZOJ3238【后缀数组】【单调栈】
- BZOJ4310 跳蚤(后缀数组+二分答案)
- BZOJ 3230 相似子串 后缀数组
- 【后缀数组】bzoj2217 Secretary
- [bzoj1717][Usaco2006 Dec]Milk Patterns 产奶的模式 (hash构造后缀数组,二分答案)
- bzoj4556: [Tjoi2016&Heoi2016]字符串 (后缀数组加主席树)
- BZOJ4650 [NOI2016]优秀的拆分 【后缀数组】
- bzoj 3230 相似子串 后缀数组
- BZOJ_1692_[Usaco2007 Dec]队列变换_后缀数组
- BZOJ 1031后缀数组
- 后缀数组 BZOJ 1031: [JSOI2007]字符加密Cipher