B3829 [NICA #2] 字符串入门题
题目背景
小波说这是字符串入门题极好的,所以这是极好的。
题目描述
给定一个仅包含大小写字母和数字的字符串 $s$,问能否将 $s$ 拆分成至少 $k$ 个子串 $s_1,s_2,\dots,s_t(t\ge k)$ 满足 $\forall 1
输入格式
第一行两个正整数 $n,k$,其中 $n$ 是 $s$ 的长度。
第二行一个字符串 $s$,仅包含大小写字母和数字。
输出格式
如果不存在这样的拆分方案,输出 `-1` 。
否则第一行输出一个正整数 $t(t\ge k)$,表示你要把 $s$ 拆分成 $t$ 个字符串。
接下来 $t$ 行,每行一个字符串,第 $i$ 行表示 $s_i$。你需要保证 $s_1s_2\dots s_t=s$。
说明/提示
#### 样例 1 解释
`1145|14`是一种合法的拆分方案,因为拆分出了 $2$ 个字符串且 $2\ge k$,并且`14`是`1145`的一个子串。
#### 样例 2 解释
`a1A|a1|1Aa`是一种合法的拆分方案,因为拆分出了 $3$ 个字符串且 $3\ge k$,并且`a1`是`a1A`的一个子串,且`1Aa`是`a1Aa1`的一个子串。
#### 样例 3 解释
尝试所有拆分方案后发现无论如何拆分都无法满足条件。
#### 数据范围
对于所有数据,满足 $2\le k\le n\le 10^6$,$s$ 仅由大小写字母和数字构成。