前言:
博客食用体验更佳。
这道题乍一看就是动规题。显然有多个颜色棋子的情况由于棋子之间会相互影响不好处理,我们先考虑只有一种颜色的情况。
- 设 s [ k ] s[k] s[k] 表示第 k k k 种颜色棋子的数量。
- C [ m ] [ n ] C[m][n] C[m][n] 表示 C m n C^n_m Cmn 的值。
- f [ k ] [ i ] [ j ] f[k][i][j] f[k][i][j] 表示把第 k k k 种颜色的棋子放完占 i i i 行 j j j 列的方案数。
- 这 i i i 行 j j j 列不一定是要挨在一起的。
- 我们可以用总的方案数 C m × n k C^k_{m\times n} Cm×nk 减去不合法的方案数,即放了 k k k 种颜色的所有棋子却并没有占到 i i i 行 j j j 列的方案数。
- 那么不合法的方案数就是: ∑ x = 1 x ≤ i ∑ y = 1 y ≤ j f [ k ] [ x ] [ y ] × C [ i ] [ x ] × C [ j ] [ y ] ( x ≠ i 或 y ≠ j ) \sum \limits^{x\le i}_{x=1}\sum \limits^{y\le j}_{y=1}f[k][x][y]\times C[i][x]\times C[j][y](x\ne i 或 y\ne j) x=