专栏文章

题解:P14321 「ALFR Round 11」D Adjacent Lifting, Fewest Rounds

P14321题解参与者 5已保存评论 4

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
4 条
当前快照
1 份
快照标识符
@minhnhn4
此快照首次捕获于
2025/12/02 02:34
3 个月前
此快照最后确认于
2025/12/02 02:34
3 个月前
查看原文
首先考虑对于一个给定排列 pp 的最优策略:
  • 我们有以下观察:
  • 注意到第一种操作不限次数,可以让某个数在奇偶性不变的情况下成为与之奇偶性相同的任何数,那么我们可以把原来排列中奇数看成 11,偶数看成 00,这样方便我们操作。
  • 对于二操作,如果是对于一个 <0,1>\left < 0,1\right > 之间的操作,那么等价于交换这两个数,否则等价于两个数取反,由于交换两个数并不会影响 0,10,1 的数量,而且取反总会让两个取反,而排列的长度是奇数,所以一定是有偶数个元素的数最后取反若干次,最后全部成为之前有奇数个元素的数。
  • 而对于需要取反的数,我们自然想到一个贪心的解法就是从前往后两两匹配,每一组的代价就是这两个位置之间另一个元素的出现次数,当前别忘记最后加上取反的次数,也就是偶数个元素出现个数的一半。
那么我们就可以枚举两两匹配时中间不同的元素的总个数,称为 jj,再设 match\text{match} 表示需要最后两两匹配的元素个数,notmatch\text{notmatch} 为最后不两两匹配的元素个数,显然一个元素要么是匹配的要么不匹配,所以 match+notmatch=n\text{match} + \text{notmatch} = n
那么对于我们确定了最后的代价 jj 后,我们需要把这 jj 个数插入到任意某个组的两个位置中间,由于一共有 match2\frac{\text{match}}{2} 组,所以相当于求方程: i=1match2xi=j,xi0\sum_{i = 1} ^ {\frac{\text{match}}{2}} x_i = j,x_i \ge 0 解的数量,根据插板法,这个式子可以化简为: (j+match21match21)\binom{j + \frac{\text{match}}{2} - 1}{\frac{\text{match}}{2} - 1} 而对于除去这 jj 个数后的另外 notmatchj\text{notmatch} - j 个数,它们要插入到这 match2\frac{\text{match}}{2} 个组的 match2+1\frac{\text{match}}{2} + 1 个空隙中,这个还是求方程的解的问题,可以化简为: (notmatchj+match2+11match2+11)=(notmatchj+match2match2)\binom{\text{notmatch} - j + \frac{\text{match}}{2} + 1 - 1}{\frac{\text{match}}{2} + 1 - 1} = \binom{\text{notmatch} - j + \frac{\text{match}}{2}}{\frac{\text{match}}{2}} 所以答案就是对于每个 jj 求和再乘上阶乘再加上每种情况都有的贡献: n!match2+match!notmatch!j=0notmatch(j+match21match21)(notmatchj+match2match2)n ! \cdot \frac{\text{match}}{2} + \text{match}! \cdot \text{notmatch}!\cdot \sum_{j = 0} ^ {\text{notmatch}} \binom{j + \frac{\text{match}}{2} - 1}{\frac{\text{match}}{2} - 1} \cdot \binom{\text{notmatch} - j + \frac{\text{match}}{2}}{\frac{\text{match}}{2}} 此时期望得分为 87\green{87} 分。
在这里,由于带着 match\text{match} 不是很好看,我们用 q=notmatch,p=match,k=p2q = \text{notmatch},p = \text{match},k = \frac{p}{2},由于固定的贡献是好 O(V)O(1)\mathcal O(V) \sim \mathcal O(1) 计算的,所以我们暂且只考虑后面带 \sum 的式子如何化简。
首先替换变量后原式得: i=0qi(i1+kk1)(qi+kk)\sum_{i = 0} ^ q i\cdot \binom{i - 1 + k}{k - 1} \cdot \binom{q - i + k}{k} 把组合数的第一个展开成阶乘的形式得到: (i1+kk1)=(i1+k)!(k1)!i!\binom{i - 1 + k}{k - 1} = \frac{(i - 1 + k) ! }{(k - 1) ! \cdot i!} 所以:
\binom{i - 1 + k}{k - 1} \cdot i &= \frac{(i - 1 + k) ! }{(k - 1) ! \cdot i!} \cdot i \\ &= \frac{(i - 1 + k)!}{(k - 1)!\cdot (i - 1)!} \\ &= \frac{(i - 1 + k)! \cdot k}{k! \cdot (i - 1)!} \\ &= k \cdot \binom{i - 1 + k}{k} \end{align*}$$ 所以原式得: $$\sum_{i = 0} ^ q k\cdot \binom{i - 1 + k}{k} \cdot \binom{q - i + k}{k}$$ 由于: $$\sum_{i} \binom{p - i}{x} \cdot \binom{q + i}{y} = \binom{p + q + 1}{x + y + 1}$$ 所以我们把: $$k - 1 \rightarrow q,q + k \rightarrow p$$ 则原式得: $$k\cdot \binom{k - 1 + q + k + 1}{2k + 1} = k\cdot \binom{2k + q}{2k + 1} = k\cdot \binom{p + q}{p + 1} = k\cdot \binom{n}{p + 1}$$ 所以答案就是: $$k\cdot \binom{n}{p + 1} + n! \cdot k$$ 时间复杂度容易做到 $\mathcal O(V + T)$。 ~~代码是个人都会写~~,不给了。

评论

4 条评论,欢迎与作者交流。

正在加载评论...