CF1784F Minimums or Medians
先找充要条件。我们关注被删除的数。
首先,因为每次一定会删去剩余的连续两个数,所以 被删除的连续段长度一定是偶数,且对于两个不同的数
其次,考虑从
进一步地,操作一显然不会涉及除了第一段以外的所有段,故可得到重要结论:第一段中所有数被操作一删除,其它段中所有数被操作二删除。它不是一个条件,但使得接下来的推理更加自然。
因为在第
结束了吗?非也。
因为操作二每次必然删去一个大于
因此,考虑不在第一段的最小的被删去的数
结束了吗?好像结束了。
考虑任意满足上述三个加粗条件的集合,我们总可以构造出一组符合要求的方案:考虑所有连续段的右半部分,当中位数为这些数时,执行操作二,否则执行操作一。
接下来考虑计数,这部分是容易的。
首先,设
枚举第一段长度
-
当
2p < n 时,再枚举第二段在n 左侧的长度c ,则c 不应超过k - p (操作次数限制)和n - 2p - 1 (不能覆盖2p + 1 ),有\begin{aligned} & \sum_{p = 0} ^ k[2p < n]\sum_{c = 0} ^ {\min(k - p, n - 2p - 1)} f(k - c, k - p - c) \\ & \sum_{p = 0} ^ k\sum_{c = 0} ^ {\min(k - p, n - 2p - 1)} \binom {p} {k - p - c} \end{aligned} -
当
2p \geq n 时,剩余长度为n + k - 2p - 1 ,剩余操作次数为k - p ,故有\sum_{p = 0} ^ {k} [2p\geq n]\binom {n - p - 1} {k - p}
时间复杂度