CF1029A
Many Equal Substrings
题面翻译
题目描述:
你有一个字符串t,它由n个字母组成。
定义一个字符串s的子串为s[l...r],表示从位置l到r构成的一个新的串。
你的目标是构造一个字符串s,使得它的可能长度最小,要求s中存在k个位置i,可以找到k个以i为出发点的子串t。
输入: 第一行输入两个整数n和k,表示t的长度和需要k个子串
第二行输入字符串t
输出:
输出满足条件的长度最小的s。题目保证答案唯一。
题目描述
You are given a string $ t $ consisting of $ n $ lowercase Latin letters and an integer number $ k $ .
Let's define a substring of some string $ s $ with indices from $ l $ to $ r $ as $ s[l r] $ .
Your task is to construct such string $ s $ of minimum possible length that there are exactly $ k $ positions $ i $ such that $ s[i i + n - 1] = t $ . In other words, your task is to construct such string $ s $ of minimum possible length that there are exactly $ k $ substrings of $ s $ equal to $ t $ .
It is guaranteed that the answer is always unique.
输入格式
The first line of the input contains two integers $ n $ and $ k $ ( $ 1 n, k $ ) — the length of the string $ t $ and the number of substrings.
The second line of the input contains the string $ t $ consisting of exactly $ n $ lowercase Latin letters.
输出格式
Print such string $ s $ of minimum possible length that there are exactly $ k $ substrings of $ s $ equal to $ t $ .
It is guaranteed that the answer is always unique.
样例 #1
样例输入 #1
3 4 aba
样例输出 #1
ababababa
样例 #2
样例输入 #2
3 2 cat
样例输出 #2
catcat
看到这道题要求的答案,想到了熟悉的循环节问题,就从这入手吧。 还是先求出来\(t\)的最小的循环节(记作\(p\)),并根据\(k\)进行多次构造。
但是,通过样例一可以发现,构造出来的\(s\)可能不是恰好由整数个\(p\)构成。 看样例一,可以发现最后恰好是由\(pmt[n-1]\)构成。
根据题意,可以总结出:前面输出\(k-1\)个循环节,后面输出\(t\)即可。 因为前面的\(k-1\)个循环节首尾相连,已经是构成了\(k-1\)个\(t\)结构了。 ## AC代码
|