题意:
给出一个长为M的序列a,其总和为N
先在需要构造出一个序列b,其总和也为N,且满足如下条件:
对于任意一个字符串,如果按照a分为M块,每块内部都为回文,
而且按照b分为M块,没亏内部也为回文。
要求所有满足上述条件的字符串,所有字符都相同。
分析:
其实这道题非常非常水。。。
由于最近刷了很多并查集的题,那么这里利用并查集来解释一下:
对于任意一个回文,我们可以看作连一些边:
所以所有联通的点其种类必须相同。
最终要求只有一种类型,也就意味着所有的线连成了一条。
这样一来,无解条件就很显然了,当a序列中有3个及以上的奇数,则一定无解。
证明非常简单,因为一旦有奇数,在其中间必然有一个单一的点,并且必然是最终的连线的一个端点,一条线只有2个端点,所以如果存在3个及以上单点,则一定无法用一条线连起来。
现在考虑如何构造,首先针对m=1的情况:
一种很好的构造方式是: b1=a1−1,b2=1 b 1 = a 1 − 1 , b 2 = 1