[题目链接]

https://www.lydsy.com/JudgeOnline/problem.php?id=4319

[算法]

首先 , 我们可以求出这个字符串的rank数组

按照SA逐位枚举 , 贪心构造 , 即可

时间复杂度 : O(N)

[代码]

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
const int N = 5e6 + ; int n;
int sa[N] , rk[N];
char s[N]; template <typename T> inline void chkmax(T &x,T y) { x = max(x,y); }
template <typename T> inline void chkmin(T &x,T y) { x = min(x,y); }
template <typename T> inline void read(T &x)
{
T f = ; x = ;
char c = getchar();
for (; !isdigit(c); c = getchar()) if (c == '-') f = -f;
for (; isdigit(c); c = getchar()) x = (x << ) + (x << ) + c - '';
x *= f;
}
int main()
{ read(n);
for (int i = ; i <= n; ++i)
{
read(sa[i]);
rk[sa[i]] = i;
}
s[sa[]] = 'a';
char now = 'a';
for (int i = ; i <= n; ++i)
{
if (rk[sa[i - ] + ] < rk[sa[i] + ])
s[sa[i]] = now;
else
{
++now;
if (now > 'z')
{
puts("-1");
return ;
}
s[sa[i]] = now;
}
}
for (int i = ; i <= n; ++i) putchar(s[i]);
puts(""); return ; }

[CERC 2008] Suffix reconstruction的更多相关文章

  1. HDU - 2970 Suffix reconstruction

    Discription Given a text s[1..n] of length n, we create its suffix array by taking all its suffixes: ...

  2. bzoj 4319: Suffix reconstruction 后缀数组+构造

    题目大意 给定后缀数组sa,要求构造出满足sa数组的字符串.或输出无解\(n\leq 5*10^5\) 题解 我们按照字典序来考虑每个后缀 对于\(Suffix(sa[i])\)和\(Suffix(s ...

  3. BZOJ4319 cerc2008 Suffix reconstruction 字符串 SA

    原文链接http://www.cnblogs.com/zhouzhendong/p/9016336.html 题目传送门 - BZOJ4319 题意 给出一个$1,2,\cdots,n$的排列,第$i ...

  4. BZOJ.4319.[cerc2008]Suffix reconstruction(后缀数组 构造 贪心)

    题目链接 \(Description\) 给定SA数组,求满足SA[]的一个原字符串(每个字符为小写字母),无解输出-1. \(Solution\) 假设我们现在有suf(SA[j]),要构造suf( ...

  5. bzoj 4319 cerc2008 Suffix reconstruction——贪心构造

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4319 如果字符集有 5e5 那么大的话,挨个填上去就行了.但只有26个字符,所以要贪心地尽量 ...

  6. bzoj 4319 Suffix reconstruction —— 贪心构造

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4319 思维还是不行...这样的构造都没思路... 首先,我们可以按 rank 的顺序从小到大 ...

  7. 【bzoj4319】cerc2008 Suffix reconstruction 贪心

    题目描述 话说练习后缀数组时,小C 刷遍 poj 后缀数组题, 各类字符串题闻之丧胆.就在准备对敌方武将发出连环杀时,对方一记无中生有,又一招顺手牵羊,小C 程序中的原字符数组就被牵走了.幸运的是,小 ...

  8. 【CERC2008】【BZOJ4319】Suffix reconstruction

    Description 话说练习后缀数组时,小C 刷遍 poj 后缀数组题. 各类字符串题闻之丧胆.就在准备对敌方武将发出连环杀时,对方一记无中生有,又一招顺 手牵羊.小C 程序中的原字符数组就被牵走 ...

  9. bzoj 4319: cerc2008 Suffix reconstruction 贪心

    如果字符集无限大的话直接按照 $sa$ 的顺序依次填即可. 由于字符集非常小,所以要尽量填相同的字符. 我们知道 $sa$ 数组,也就知道了 $rank$ 数组. 那么考虑添加排名为 $i$ 的字符: ...

随机推荐

  1. python 基础 9.5 数据库连接池

      一. 数据库连接池    python 编程中可以使用MySQLdb 进行数据库的连接及诸如查询,插入,更新等操作,但是每次连接mysql 数据库请求时,都是独立的去请求访问,相当浪费资源,而且访 ...

  2. GitHub从无到有

    一步一步教你如何在GitHub上上传自己的项目 2018年07月04日 09:23:40 夏雨薇安 阅读数:22764   首先你得注册一个自己的GitHub账号,注册网址:https://githu ...

  3. 【BZOJ3791】作业 DP

    [BZOJ3791]作业 Description 众所周知,白神是具有神奇的能力的.比如说,他对数学作业说一声“数”,数学作业就会出于畏惧而自己完成:对语文作业说一声“语”,语文作业就会出于畏惧而自己 ...

  4. 【BZOJ4542】[Hnoi2016]大数 莫队

    [BZOJ4542][Hnoi2016]大数 Description 小 B 有一个很大的数 S,长度达到了 N 位:这个数可以看成是一个串,它可能有前导 0,例如00009312345.小B还有一个 ...

  5. Xshell连接不上行Linux系统

    之前出现了.我的Linux系统上的主机可以ping通windows的一台电脑, windows也可以ping的通Linux.但是Xshell不能连接. 第一,我感觉是不是我Linux系统的端口被防火墙 ...

  6. BZOJ1505: [NOI2004]小H的小屋

    BZOJ1505: [NOI2004]小H的小屋 Description 小H发誓要做21世纪最伟大的数学家.他认为,做数学家与做歌星一样,第一步要作好包装,不然本事再大也推不出去. 为此他决定先在自 ...

  7. hibernate 查询方式

    1.对象导航查询 2.OID查询 3.hql查询 4.QBC查询 5.本地sql查询 一.对象导航查询 示例: 查询id=6的user对象的所有角色: 二.OID查询 实例查询id=6的user对象 ...

  8. go语言之并发编程 channel(1)

    单向channel: 单向通道可分为发送通道和接收通道.但是无论哪一种单向通道,都不应该出现在变量的声明中,假如初始化了这样一个变量 var uselessChan chan <- int =m ...

  9. 使VS自动生成代码注释

    1.注释模板位置C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\ItemTemplatesCache 里面有各种脚本的模板 2.找到 ...

  10. 第2条:遵循PEP8风格指南

    <Python Enhancement Proposal #8>(8号Python增强提案)又叫PEP8,它是针对Python代码格式而编订的风格指南. 尽管可以在保证语法正确的前提下随意 ...