AT_arc089_d [ARC089F] ColoringBalls 笔记

模拟赛 #47 T4,超绝计数题,拼尽全力无法战胜。

由于不同的操作方式可能导致相同的结果,所以我们不能直接通过操作方式来计数,由于可以放弃操作,因此考虑如何用最简单的方式来操作得到一个序列。

首先,相邻的同色小球我们肯定是在一次涂色中解决,因此我们将相邻同色的部分缩成一个数,现在变成了形如 \(\texttt{{\color{Red}R}{\color{Blue}B}{\color{Red}R}{\color{Blue}B}WW{\color{Red}R}}\) 一类的东西。

对于 \(\texttt{{\color{Red}R}}\),显然只需要一个 \(\texttt{r}\) 就能涂上了,考虑 \(\texttt{{\color{Red}R}{\color{Blue}B}}\) 交替的,显然我们可以只用一个 \(\texttt{r}\)「上底色」,然后下一步必定选 \(\texttt{b}\),后面就任意涂了(因为涂 \(\texttt{r}\) 可以视作 \(\texttt{B}\to \texttt{BRB}\),涂 \(\texttt{b}\) 反之),因此涂 \(c_i\)\(\texttt{B}\) 的代价就是 \(c_i+1\)

因此枚举有 \(x\) 个连续段是交替涂色,有 \(y\) 个连续段只有 \(\texttt{R}\),判定是否合法的时候,贪心地选前 \(x\)\(\texttt{r...b}\)\(x\) 个连续段涂色,再在前面选 \(y\)\(\texttt{r}\)\(y\) 个连续段涂色,称这个选择为「分配」。现在假设 \(x\) 个连续段 \(\texttt{B}\) 的个数分别是 \(c_{1\dots x}\),其中第 \(i\) 个连续段合法的条件是「给 \(i\) 分配的 \(\texttt{B}\) 后面的还没被分配的数量(设这个数量是 \(\mathrm{sb}_i\)\(\ge \sum_{j\in [i,x]} (c_j-1)\)」,这启示贪心地将 \(c_i\) 大的分配给前面的连续段,也就是令 \(c\) 降序排序。

于是考虑 DP,设 \(f_{i,j,k}\) 表示考虑连续段 \([i,x]\)\(j=\sum_{j'\in [i,x]} (c_{j'}-1)\)\(c_i=k\),并且考虑了连续段间内部排序方式的方案数,每次转移一次性决定所有 \(c_i=k\) 的方案。

\[f_{i,j,k}\gets\sum_{i+p\le x+1 \wedge 0\le j-p(k-1)\le\mathrm{sb}_{i+p}}\sum_{l<k} \binom {x-i+1}{p}f_{i+p,j-p(k-1),l} \]

对于 \(l\),使用前缀和优化,第一二维的转移是 \(\ln n\) 的,因此状态数 \(O(n^3)\),转移 \(O(\ln n)\),时间复杂度 \(O(n^3\ln n)\)

接着考虑把这个方案还原到原本的 \(n\) 个球有多少种情况。

首先,将 \(x\) 种混色和 \(y\) 种同色情况重排:\(\binom {x+y}{x}\)

对于具体的还原到 \(n\) 个球,考虑使用插板法,弄出若干个盒子,每个盒子只能放同色的球,那么对于 \(x\) 种的,有 \({\color{Red}\cdots}{\color{Blue}-}{\color{Red}-}{\color{Blue}-}{\color{Red}\cdots}\) 的情况(其中 \(\cdots\) 表示这个盒子不一定要放球),推到一下这里如何由 \(f_{1,j,k}\) 得到必须放球的盒子数 \(\sum (2c_i-1)\)

\[\sum (2c_i-1)=\sum(c_i-1)+\sum c_i=2j+x \]

不一定要放球的盒子数就是 \(2x\)

同时,有 \(y\) 个盒子放红色球,那么剩下中间的盒子都是必须放白色球,这里的个数是 \(x+y-1\),序列的两端不一定要放,这里的个数是 \(2\)

因此必须放球的盒子个数 \(A={\color{Blue}2j+x}+{\color{Red}y}+x+y-1\)

不一定放球的盒子个数 \(B=2x+2\)

使用插板法变式可以得到 \(\binom{n+B-1}{A+B-1}\)

总结一下:

\[\mathrm{ans}=\sum_{x=0}^n\sum_{y=0\wedge(x\neq0\vee y\neq0)}^{x-n}\sum_{j=0}^\mathrm{sb_1}\sum _{k=0}^n\binom{n+B-1}{A+B-1}\times f_{1,j,k} \]

时间复杂度 \(O(n^5\ln n)\) 但非常跑不满,空间复杂度 \(O(n^3)\)

posted @ 2025-11-25 22:20  Garbage_fish  阅读(0)  评论(0)    收藏  举报