牛客多校4.C.LCS 构造
Analysis
题目要求构造三个长度为的字符串,同时满足
很容易想到,对于待构造的三个串,我们应该先选择最小的,将三个空串填充个相同字母;然后将次小和最大的两个值减去已经填充的长度。此时三个最小值一定为0,然后再选择非零最小值(就是前面的次小值),对两个串进行填充,再对剩下的另外一个值对应的两个串进行填充。
那么对于样例:1 2 3 4
首先对于三个空串填充最小值:
三个值减去后,为0 1 2
,那么接下来对第二、三个串填充个,第三、一个串填充个:
剩余的均填充不同的字符即可。
这样便得到了一组合法的解。接下来考虑不合法的情况:填充超出给定长度:
若首次填充的长度加上后面填充的长度即那么即为不合法的解。注意此处是对输入三个值的升序排序。
AC Code