博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU4045-第二类斯特林数
阅读量:4955 次
发布时间:2019-06-12

本文共 843 字,大约阅读时间需要 2 分钟。

题意

有n台机器,每天选择r台,要求任意两台编号差值不小于k,并且r台机器分成不超过m组。求不重样的选择有多少种组合(可以选多少天)。

数据范围$1\leqslant n,r,k,m\leqslant1000$。

分析

首先从n个元素中选r个元素,任意两台编号差值不小于k

可以推断出是把$n-r-(k-1)(r-1)$个相同的球放入$r+1$个盒子里的方案数

方案数为$\binom{n-(k-1)(r-1)}{r}$

 

然后把$r$个元素分成$m$组,允许有空组

方案数为$\sum_{i=1}^{m}S(r,j)$

其中$S$是第二类斯特林数

 

结论就是$\binom{n-(k-1)(r-1)}{r}\sum_{i=1}^{m}S(r,j)$

注意数据合法性,$n\geqslant (r-1)k+1$

代码

#include #include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MAX 1007#define MAXN 10007#define MAXM 20007#define INF 0x3f3f3f3f#define NINF 0xc0c0c0c0#define MOD 1000000007using namespace std;typedef long long LL;LL C[MAX][MAX]={0},S[MAX][MAX]={0};//组合数 void initC(){ for(int i=0;i

  

转载于:https://www.cnblogs.com/shuiming/p/7511705.html

你可能感兴趣的文章
8.9
查看>>
dhcp服务脚本
查看>>
密钥对验证
查看>>
正向dns脚本
查看>>
dns等服务器搭建
查看>>
laravel soap
查看>>
MySQL 无法启动,出现 “发生系统错误 1067。”
查看>>
(android实战)实现摇一摇功能
查看>>
python 中的map,dict,lambda,reduce,filter
查看>>
二、语言基础
查看>>
[恢]hdu 1030
查看>>
hihocoder-1142-三分求极值
查看>>
SNAT、DNAT、NPT
查看>>
git 10.8
查看>>
css实现div的高度填满剩余空间
查看>>
ES6(二) Destructuring-变量的解构赋值
查看>>
RestSharp.WindowsPhone调用Rest服务
查看>>
关于忘记Jenkins管理员密码的解决办法
查看>>
android 的四种枚举Context.MODE_PRIVATE
查看>>
网页javascript
查看>>