$Problem’s$ $Website$
$Solution$
$dp$求解,我们设$f[i][j][k]$为前$i$个数,最后连续$j$个黑球,连续$k$个白球的方案数,这样求出来答案要$\times 2$,因为颜色可以互换。
具体步骤:
1.当$n < 7$时,答案为$2^n$,因为怎样涂颜色都可以。
2.当$n \ge 7$时,我们求出一个$ans$数组,$ans[i]$为i个数时一种情况的方案数 (即$f[i][j][k]$ $j$ 为黑球个数,$k$为白球个数),因为可以互换,所以答案为$ans[n] \times 2$。
P.s. 如何处理$f$和$ans$数组?
最外层一次循环枚举$i$从$1$到$6$,每次将$f$数组清零,初始化$f[i + 1][1][0] = 1$,显然~。然后有以下式子:
$\sum\limits_{j = i + 1}^{2e5 + 10}{\sum\limits_{k = 1}^{6}{f[j][1][0] += f[j - 1][0][k], f[j][0][1] += f[j - 1][k][0];}}$
$\sum\limits_{j = i + 1}^{2e5 + 10}{\sum\limits_{k = 1}^{5}{f[j][k + 1][0] += f[j - 1][k][0], f[j][0][k + 1] += f[j - 1][0][k];}}$
$\sum\limits_{j = i + 1}^{2e5 + 10}{\sum\limits_{k = 1}^{6}{ans[j] += f[j][k][0];}}$
$\sum\limits_{j = i + 1}^{2e5 + 10}{\sum\limits_{k = 1}^{6 - i}{ans[j] += f[j][0][k];}}$
最后别忘了$mod$!
$Code$
1 | //Coded by dy. |
$rp++$