题解:P17857 「GLR-R5」立秋 / autumnascit
_Communist · · 题解
验题人题解。本题解以
Step 1
一个 L 能产生贡献当且仅当:
-
前面是
R,l,M; -
后面是
R,r,M或者后面没有字符。
R 是对称的。贪心地考虑,由于 R 和 M 可以在 L 的前面或者后面出现,L 和 M 可以在 R 的前面或者后面出现,为了最大化利用它们,我们希望尽可能多地出现 LRL, RLR, XMX(X 是大写字母)的结构。
由于 R 前面可以没有字符,容易想到以 RLRL... 的结构开头,直到 L 或 R 用完为止。下面我们假设 L 用完了,R 用完了的情况可以对称处理。
为了最大化 M 的利用率,剩下的 R 我们采用 RMRM... 的结构,直到 R 和 M 的其中一个用完。我们在 Step 2 - 1 讨论 M 用完的情况,Step 2 - 2 讨论 R 用完的情况。
Step 2 - 1
当 M 用完时,我们希望剩下的 R 能够继续产生贡献,此时新的 R 右边只能放 r,而 r 的右边不能直接接 R,只能接 l。
于是得到 RrlRrl...Rr 的结构。注意可以以 Rr 结尾,那么 Rrl 的重复次数是
接下来 R, l, r 三者中有至少一个会用完,如果还有剩下的 R 就一定不能产生贡献,所以我们据情况重复 Rr, Rl, lr 的结构即可。
在完成上述步骤后只会剩下一种字符。如果剩下的是 R,可以随意插入到合法的位置;否则如果剩下 l 或 r,由于随意插入可能会减少贡献,我们在 Step 3 讨论。
Step 2 - 2
当 R 用完时,考虑到可能 M 插入到前面 RLRL...RMRM... 的结构中。但我们不希望出现 RML 的结构,因为 R 和 L 指向了同一个 M,导致贡献减少。
考虑先不管 R 和 L 之间的空隙,我们会得到 MRLMRL...MRMRM... 的结构。假如此时 M 还有剩余,一个简单的调整是选择长为 ML 和 MR,这样可以多塞入 M。M 数量与 RL 数量的
:::info[MRLMRLMRL MLMLMLMRMRMR。
:::
现在我们处理 l 和 r。一个自然的结构是 rlrl...,可以直接拼在后面,这样 l 和 r 只会剩下其中一种。假如还有 M,我们可以重复 Ml 或 Mr 做到只剩一种字符。
与 Step 2 - 1 类似,如果剩下的是 M,可以随意插入到合法的位置;否则如果剩下 l 或 r,由于随意插入可能会减少贡献,我们在 Step 3 讨论。
Step 3
假设剩下最后一种字符 r,l 的情况是对称的。
在合法的前提下,我们先填充所有 l 和 M 前面的位置(以及最后一个位置),之后的填充一定会减少贡献,直接乱填即可。
Step 4
下面分析一下答案。由于我们的构造充分利用了 Step 1 开头所提的 RLR, LRL, XMX 等结构,容易分析出一个上界是
此外,Step 3 中我们提到可能剩下的 l 或 r 乱放导致贡献减少,由于最后剩下的 l 或 r 数量是
两个上界取