CF1823D

发布时间 2023-08-29 19:49:54作者: FOX_konata

原题

翻译

首先我们发现\(c_i \leq x_i\)一定有解,否则一定无解

因为我们考虑如果以\(s_i\)结尾出现了若干个回文串,则对于一个与他匹配的\(s_j\),容易发现\(s_j = s_i\),这会让他减去一个代价

因此可以知道\(0 \leq p(s,m)-p(s,m-1) \leq 1\)

我们对于每个限制分开考虑。思考如果\(c_i = x_i\)的最简单的构造方案是什么,显然是\(aaaaaa....\)

于是我们考虑在里面添加一些无用的字符串来抵消多余的贡献,我们发现如果我们用长度\(\geq 3\)的,里面字母完全不同的字符串反复写,他是不会出现字符串的,如\(abc\)就是一个理想的情况

因此我们考虑对于第一段我们使用\(abccccccc...ccabcabc...\),第二段使用\(cccccccccc...ccccabcabc...\),可以发现这样一定不会构造出多余的回文串

最终复杂度\(O(n)\)