P1124 文件压缩

    • 103通过
    • 382提交
  • 题目提供者
  • 评测方式 云端评测
  • 标签 字符串 模拟
  • 难度 普及+/提高
  • 时空限制 1000ms / 128MB

题解

  • 提示:收藏到任务计划后,可在首页查看。
  • 最新讨论 显示

    推荐的相关题目 显示

    题目背景

    提高文件的压缩率一直是人们追求的目标。近几年有人提出了这样一种算法,它虽然只是单纯地对文件进行重排,本身并不压缩文件,但是经这种算法调整后的文件在大多数情况下都能获得比原来更大的压缩率。

    题目描述

    该算法具体如下:对一个长度为n的字符串S,首先根据它构造n个字符串,其中第i个字符串由将S的前i-1个字符置于末尾得到。然后把这n个字符串按照首字符从小到大排序,如果两个字符串的首字符相等,则按照它们在S中的位置从小到大排序。排序后的字符串的尾字符可以组成一个新的字符串S’,它的长度也是n,并且包含了S中的每一个字符。最后输出S’以及S的首字符在S’中的位置p。举例:

    S:example

    1、构造n个字符串

    example

    xamplee

    ampleex

    mpleexa

    pleexam

    leexamp

    eexampl

    2、将字符串排序

    ampleex

    example

    eexampl

    leexamp

    mpleexa

    pleexam

    xamplee

    3、压缩结果

    xelpame S’

    7 p

    由于英语单词构造的特殊性,某些字母对出现的频率很高,因此在S’中相同的字母有很大几率排在一起,从而提高S’的压缩率。虽然这种算法利用了英语单词的特性,然而在实践的过程中,人们发现它几乎适用于所有的文件压缩。

    请你编一个程序,读入S’和p,输出字符串S。

    输入输出格式

    输入格式:

    输入文件共有三行,第1行是一个整数n(1<=n<=10000),代表S’的长度,第2行是字符串S’,第3行是整数p。

    输出格式:

    仅包含一行S。

    输入输出样例

    输入样例#1: 复制
    7
    xelpame
    7
    
    输出样例#1: 复制
    example
    
    提示
    标程仅供做题后或实在无思路时参考。
    请自觉、自律地使用该功能并请对自己的学习负责。
    如果发现恶意抄袭标程,将按照I类违反进行处理。