4319: cerc2008 Suffix reconstruction

Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special Judge
Submit: 195  Solved: 140
[Submit][Status][Discuss]

Description

话说练习后缀数组时,小C 刷遍 poj 后缀数组题,
各类字符串题闻之丧胆。就在准备对敌方武将发出连环杀时,对方一记无中生有,又一招顺
手牵羊,小C 程序中的原字符数组就被牵走了。幸运的是,小C 早已经求出了 SA[],为了
能东山再起,迅速 A 掉此题,他希望各位忠臣们能帮忙求出一组原字符数组的可行方案。已
知原字符数组由小写拉丁字母组成。且小C的SA[]也是有可能求错的, 原数组可能不存在。 

Input

输入文件只有一行且为用空格隔开的一个正整数 N。 
接下来一行有 N 个数,为 1~N 的排列。 
其中对于 100%的数据 N≤500000

Output

一行有 N 个小写拉丁字母,若不存在合法方案输出-1; 

Sample Input

4
2 3 4 1

Sample Output

dabc

当然按sa[]的顺序构造,尽量让相同的字符尽可能多

步骤如下:

①计算出rank[]数组

②str[sa[1]] = 'a';

③如果rank[sa[i]+1]>rank[sa[i-1]+1],说明str[sa[i]]和str[sa[i-1]]可以相同,否则必须满足str[sa[i]]>str[sa[i-1]]

超过了'z'就GG

#include<stdio.h>
int a[500005], rk[500005];
char ans[500005];
int main(void)
{int n, i;char now;scanf("%d", &n);for(i=1;i<=n;i++){scanf("%d", &a[i]);rk[a[i]] = i;}now = 'a';ans[a[1]] = now;for(i=2;i<=n;i++){if(rk[a[i]+1]<rk[a[i-1]+1])now++;if(now>'z')break;ans[a[i]] = now;}if(i<=n)printf("-1\n");else{ans[n+1] = 0;puts(ans+1);}return 0;
}

bzoj 4319: cerc2008 Suffix reconstruction(构造)相关推荐

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

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

  2. [BZOJ4319][cerc2008]Suffix reconstruction(贪心)

    === === 这里放传送门 === === 题解 这题发题解的时候纠结了半天挂什么tag..后缀数组?这哪里用后缀数组了..暴力?感觉好敷衍..最后还是决定挂上贪心的tag好了... ATP一开始看 ...

  3. 一句话题解(20170801~20170125)

    8.1 bzoj 4720 noip2016 换教室 floyd预处理+期望(薛定谔的猫) bzoj 4318 OSU! 三次函数期望值 从一次.二次推得 8.2 bzoj 1076 状压+期望DP ...

  4. 一句话题解(20180210~)

    2.9 BZOJ 2006 [NOI2010]超级钢琴.这道题目几天之前就做了.做法是固定右端点,左端点在ST表上走,走法其实就是笛卡尔树的走法.完结撒花! BZOJ 1218 [HNOI2003]激 ...

  5. html音乐播放器自动切歌,HTML音乐播放——切歌

    $(function(){ $("#next").click(next); }); // 使用JQuery选择标签,则切歌后两首歌一起播放,用JS挺好 var eBar = doc ...

  6. 2019.5.summary

    2019.5.1 CF C. Prefix Sum Primes 感觉CF就是训练妳如何养成对题目强大的YY能力的QAQ 我们构造 如果只有一种,没辙,只能这样放 否则先放一个2,再放一个1 接下来把 ...

  7. 《题目与解读》红书 训练笔记目录《ACM国际大学生程序设计竞赛题目与解读》

    虽然2012年出版的老书了,但是是由三次世界冠军的上海交大ACM队出版的书籍,选择的题目是ACM经典中的经典,书中有非常详细的题解,可以学到很多东西,值得一刷. 目录 第一部分 第一章 数学 1.1 ...

  8. shell生成随机文件名

    1 #!/bin/bash         2 # tempfile-name.sh:  临时文件名产生器         3         4 BASE_STR=`mcookie`     # 3 ...

  9. 关于excel导入带图片

    public String importExcel(MultipartFile file) {if (file == null) {throw new CustomException("当前 ...

最新文章

  1. C ++ 17中有哪些新功能?
  2. (线性基) bzoj 2460
  3. 安卓手机使用linux(含图形界面)——Aid Learning
  4. 直播预告丨统一便捷的数据操作平台CloudQuery年终发布!
  5. python项目上线_django之项目部署上线
  6. FTP 编程 5 文件传输与目录切换
  7. Linux基础命令---mke2fs
  8. SQL2005下载版本之区别
  9. php地图找房代码,vue-baidu-map简单实现地图找房
  10. Android模拟点击屏幕,实现按键精灵点击屏幕功能
  11. java 顺丰电子面单,【第三方API】顺丰电子面单SDK调用总结-java
  12. hexo个人博客 next主题添加背景图片(无custom.styl情况)
  13. 直观理解深度学习中的反卷积、导向反向传播
  14. NSDI 2021 Breaking the Transience-Equilibrium Nexus: A New Approach to Datacenter Packet Transport笔记
  15. Hive基础知识及底层架构
  16. 基于光栅波导结构的 R ARMR 系统的 建模
  17. 自定义UI 简易图文混排
  18. 程序运行时的内存空间分布
  19. 基于LiFi可见光通信技术的研究及应用转化调查
  20. Nexus 配置私有的镜像仓库

热门文章

  1. 学python能做什么类型的工作-Python支持哪些数据类型
  2. 一张图学会python应用到excel-Python应用之------Excel操作
  3. 做好嘈杂环境的语音识别,目前难点主要在哪里?
  4. SpringSecurity系列(三) Spring Security 表单登录
  5. 各大软件的 java版本_Java 各个版本的软件 1.4 1.5 5.0 6.0
  6. sublime text 3 输入中文 linux,解决 Linux 下 Sublime Text 3 中文无法输入问题
  7. hbase 中文乱码 查询_如何在 HBase Shell 命令行正常查看十六进制编码的中文?哈哈~...
  8. mysql主从错误1007_mysql主从错误:1032
  9. Win10系统安装Oracle11g时遇到INS-13001环境不满足最低要求
  10. HDOJ水题集合6:杂题