luogu#P11447. 「ALFR Round 3」C 割

    ID: 35239 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 3 上传者: 标签>字符串贪心洛谷原创O2优化鸽笼原理洛谷月赛

「ALFR Round 3」C 割

题目背景

English Statement.

upd: 添加的 hack 在 Sub 7。

题目描述

f(S)f(S) 表示字符串 SS 字典序最大的子序列,给定 kk,你需要将原字符串 SS 分割成 kk 段,设第 ii 段子串为 aia_i,则该分割方案的权值为 maxf(ai)\max f(a_i),其中 1ik1\le i\le k。由于分割方案有很多种,你需要求出所有分割方案中字典序最小的权值

注:这里的权值实际上指的是字符串。

关于子序列的定义:某个序列的子序列是从最初序列通过去除某些元素但不破坏余下元素的相对位置(在前或在后)而形成的新序列。

关于字典序的定义:在字典序中,首先比较两个字符串的第一个字符,如果不同,则第一个字符较小的字符串更小;如果相同,则继续比较下一个字符,依此类推,直到比较完所有字符。如果一个字符串是另一个字符串的前缀,则较短的字符串更小。

输入格式

输入共两行。

第一行两个整数 n,kn,knn 表示字符串 SS 的长度,kk 表示你需要将字符串分割为 kk 段。

第二行为一个字符串,即 SS

输出格式

输出一个字符串表示所有分割方案中字典序最小的权值。

7 2
skyaqua
y

提示

样例解释

可以将字符串 SS 分割成 skyaqua22 段,这 22 段的 ff 分别为 yua,其中字典序最大的 ffy,所以该分割方案的权值为 y。可以证明 y 是所有分割方案中字典序最小的权值。

数据范围

子任务 分值 限制
11 1010 n10n\le 10
22 2020 n102n\le 10^2
33 n3×102n\le 3\times 10^2
44 1010 保证字符串 SS 中所有字符都相等
55 k=1k=1
66 3030 -

对于 100%100\% 的数据,1kn2×1051\le k\le n\le 2\times10^5,且字符串 SS 中的字符均为小写英文字母。