AT_utpc2012_07.k番目の文字列
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
爱丽丝有 n 张卡片,每张卡片上写着从 a 到字母表第 n 个小写字母中的一个(例如 n=3,那么爱丽丝就有写着 a、b、c 的三张卡片)。爱丽丝想要将这些卡片重新排列成一个字符串。这之后,她提取出这个字符串的所有非空子串,并将它们按字典序排序。已知排序后第 k 个子串是 s。她很好奇:有多少种满足这个条件的字符串呢?
例如,当 n=3 时,如果将卡片排列成 cab,那么其子串按字典序排序后为 a、ab、b、c、ca、cab,第 3 个子串是 b。而使得排序后第 3 个子串为 b 的排列有两种,分别是这种和 bac。
求所有子字符串按字典顺序排序时,第 k 个字符串为 s 的排列方式的数量,结果对 109+7 取模。不过,爱丽丝可能在做梦,这样的排列方式实际上可能并不存在。在这种情况下,请输出 0。
输入格式
第一行两个整数 n、k。
第二行一个字符串 s。
输出格式
一行一个整数。
说明/提示
对 50% 的数据:∣s∣≥n−2。其中 ∣s∣ 表示字符串 s 的长度。
对 100% 的数据:
- 1≤n≤26;
- 1≤k≤2n(n+1);
- s 的所有字符互不相同;
- s 由字母表内第 1∼n 个小写字母组成。
Translated by UID 781046.
输入解题思路,AI测评打分。不知道怎么写?