题面

给你n种颜色的球,每个球有k个,把这n*k个球排成一排,把每一种颜色的最左边出现的球涂成白色(初始球不包含白色),求有多少种不同的颜色序列,答案对1e9+7取模

解法

设\(f(i,\;j)\)表示在这些\((n \times k个)\)位置上已经放了i个白球,j种其他颜色的球。(i<j)

\(f(i,\;j) = f(i-1,\; j)+f(i ,\;j-1)\times (n-j+1)\times \dbinom{k-2}{n*k-i-(j-1)*(k-1)-1}\)

第一部分: 加一个白球,我们规定了白球放首位以避免重复计算

第二部分: 加入一种新颜色: 还有(n-j+1)种颜色,选出一种后,需要放(k-2)个,又因为共有i+(j-1)*(k-1)-1个空格,所以是\(f(i ,\;j-1)\times (n-j+1)\times \dbinom{k-2}{n*k-i-(j-1)*(k-1)-1}\)

证毕!

代码

#include<iostream>
using namespace std ;
#define int unsigned long long
const int mxn = 8000005 ;
const int Mod = 1e9+7 ;
int frac[mxn], inv[mxn];
int f[2005][2005], n, k;
int power(int a, int b){
int res=1, car=a;
while(b){
if(b&1) (res*=car)%=Mod;
(car*=car)%=Mod;
b>>=1;
}
return res;
}
void init(){
frac[0]=1 ;
for(int i=1;i<mxn;++i) (frac[i]=frac[i-1]*i)%=Mod ;
inv[mxn-1] = power(frac[mxn-1], Mod-2);
for(int i=mxn-2;i>0;--i) inv[i]=(inv[i+1]*(i+1))%Mod ;
inv[0] = 1 ;
}
int C(int n, int k){
return ((frac[n]*inv[k]%Mod)*inv[n-k])%Mod ;
}
signed main(){
init() ;
cin>>n>>k;
if(k==1) return puts("1"),0 ;
f[0][0] = 1 ;
for(int i=1;i<=n;++i)
for(int j=0;j<=i;++j)
(f[i][j] = f[i-1][j]+(j?((((f[i][j-1]*(n-j+1))%Mod)*C(n*k-i-(j-1)*(k-1)-1, k-2))%Mod):(0)))%=Mod ;
cout<<f[n][n]<<endl ;
}

最新文章

  1. UITableView heightForHeaderInSection遇到的坑
  2. iOS 蓝牙开发(三)app作为外设被连接的实现(转)
  3. Android USB Host与HID通讯 (二)
  4. 如果ie6跳转
  5. jq选择器对象筛选
  6. WIN32动态链接库设计与使用
  7. IOS开发-UI学习-NSMutableAttributedString(带属性的字符串)的使用
  8. 备份的一些小tip
  9. Python随笔,day1
  10. Java服务器端生成报告文档:使用SQL Server Report Service(SSRS)
  11. hadoop2.6.0实践:控制台入口url列表
  12. 应用系统如何分析和获取SQL语句的执行代码
  13. app启动过程
  14. C++函数指针与指针函数干货
  15. HDU 1010生成树
  16. MVC后台获取数据和插入数据的三种方式【二】
  17. SQL注入之Sqli-labs系列第十二关
  18. eclipse 安装 ndk 组件
  19. xcode4 语法高亮和自动补全失效的解决办法
  20. 关于wxpy,使用Python玩转微信的问题

热门文章

  1. jenkins#安装gitlab
  2. 006.Delphi插件之QPlugins,多服务演示
  3. python实现二分法
  4. UVA - 11354 Bond(最小生成树+LCA+瓶颈路)
  5. Git TortoiseGit github 操作
  6. 英语语法 - the + 形容词 的意义
  7. R语言 plot()函数 基础用法
  8. C#中类的字段或属性不被序列化成JSON或XML
  9. ELK 安装Elasticsearch
  10. Bulma CSS - 简介