bzoj 4319: cerc2008 Suffix reconstruction(构造)
来源:互联网 发布:如何雇佣网络水军价格 编辑:程序博客网 时间:2024/06/07 00:20
4319: cerc2008 Suffix reconstruction
Time Limit: 10 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 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;}
阅读全文
1 0
- bzoj 4319: cerc2008 Suffix reconstruction(构造)
- BZOJ 4319: cerc2008 Suffix reconstruction|贪心构造
- [BZOJ4319]cerc2008 Suffix reconstruction(贪心+构造+后缀数组)
- 【BZOJ4319】cerc2008 Suffix reconstruction【构造】【后缀数组】
- [BZOJ4319][cerc2008]Suffix reconstruction(贪心)
- 【bzoj4319】cerc2008 Suffix reconstruction
- 【CERC2008】【BZOJ4319】Suffix reconstruction
- [bzoj4319]cerc2008 Suffix reconstruction
- BZOJ4319 cerc2008 Suffix reconstruction
- BZOJ4319: cerc2008 Suffix reconstruction Suffix Array 的理解
- hdu2970 Suffix reconstruction 后缀数组反过来构造串
- 字符->hdu 2970 Suffix reconstruction
- 构造字符串(hdu2970Suffix reconstruction)
- HDU 2970 Suffix reconstruction [Ad Hoc]
- ZOJ3732 Graph Reconstruction(图的构造)
- zoj 3732 Graph Reconstruction(构造)
- zoj 3732 Graph Reconstruction(构造)
- zoj 3732 Graph Reconstruction 构造
- 【Win10】修改标题栏颜色
- ssm框架整合
- Codeforces Round #446 (Div. 2) D. Gluttony
- 7面向对象方法学
- 计算与推断思维 四、数据类型
- bzoj 4319: cerc2008 Suffix reconstruction(构造)
- RabbitMQ原理
- java字符转码
- git命令详解
- [Unity][NavMesh]Unity NavMesh Compent 寻路组件动态自动烘培
- 第一篇博客
- Qt5基本教程
- 弹窗选择小时和分钟
- 96. Unique Binary Search Trees