P1124 文件压缩

    • 145通过
    • 512提交
  • 题目提供者
  • 评测方式 云端评测
  • 标签 字符串 模拟
  • 难度 普及+/提高
  • 时空限制 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$ 。

    输入输出格式

    输入格式:

    共三行。

    第一行是一个整数 $n(1 \le n \le 10000)$ ,代表 $S$ ’的长度。

    第二行是字符串 $S$ ’。

    第三行是整数 $p$ 。

    输出格式:

    一行,S。

    输入输出样例

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