【XSY2551】球(DP)(组合数学)

Description

Snuke喜欢五颜六色的球,他一共有 n∗k 个。有 n 种颜色,每种颜色有 k 个球。现在他将所有球以任意顺序排成一排,然后将每种颜色的最左边的球染成一种新的颜色。求重新染色后的球的颜色序列有多少种,答案对1000000007取模。

Input

一行两个整数 n,k 。

Output

一行一个整数表示方案数。

Sample Input

sample input 1:
2 2

sample input 2:
3 1

sample input 3:
2 3

Sample Output

sample output 1:
4

sample output 2:
1

sample output 3:

14

DP。
首先我们可以先确定放颜色的顺序,最后在乘一个 n ! n! n!就可以啦,我们就按顺序放,从颜色1到颜色n。
显然,0出现的个数肯定是 > = >= >=其他颜色出现的种类数的。
d p [ i ] [ j ] dp[i][j] dp[i][j]表示出现了 i i i个零,已经放完了 j j j种颜色的方案数。
我们在放颜色的时候有两种情况:
1.放一个零颜色。
那我们的零只能放在下一位,这就是多放了一个0。贡献就是:
d p [ i ] [ j ] + = d p [ i − 1 ] [ j ] dp[i][j]+=dp[i-1][j] dp[i][j]+=dp[i1][j]
2.放一种新颜色
我们接着放了颜色x,那么颜色x还剩k-2个,我们要排好这k-2个颜色的位置,一共 C n ∗ k − i − ( j − 1 ) ∗ ( k − 1 ) − 1 k − 2 C_{n*k-i-(j-1)*(k-1)-1}^{k-2} Cnki(j1)(k1)1k2种情况,贡献就是:
一共可以放的位置:

一 共 的 位 置 − 0 的 位 置 − 之 前 放 的 颜 色 的 位 置 − 这 个 节 点 本 身 一共的位置-0的位置-之前放的颜色的位置-这个节点本身 0
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值