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

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

大致题意:

n个孩子,k场比赛,每个孩子至少参加一场比赛,且每场比赛只能由一个孩子参加。问有多少种分配方式。

分析:

k>n,就无法分配了。

k<=n。把n分成k堆的方案数乘以n的阶乘。N分成k堆得方案数即第二类斯特林数

#include 
using namespace std;typedef long long ll;const ll mod=1e9+7;const int maxn=1005;ll s[maxn][maxn];void init(){ s[0][0]=1; for(int i=1;i<=1000;i++) for(int j=1;j<=i;j++) s[i][j]=(j*s[i-1][j]+s[i-1][j-1])%mod; for(int i=1;i<=1000;i++) { ll tmp=1; for(int j=1;j<=i;j++) { tmp=(tmp*j)%mod; s[i][j]=(s[i][j]*tmp)%mod; } }}int main(){ freopen("galactic.in","r",stdin); init(); int n,k,t; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&k); if(k>n) { puts("0"); continue; } printf("%I64d\n",s[n][k]); } return 0;}

 

转载于:https://www.cnblogs.com/pach/p/6916823.html

你可能感兴趣的文章
物联网的三层架构
查看>>
linux性能剖析工具
查看>>
Mysql数据库安装---解压版
查看>>
在多文档应用程序中使用OpenGL绘图
查看>>
【转】HTTP状态码(HTTP Status Code)
查看>>
在Eclipse下搭建Android开发环境教程,HelloWord
查看>>
python自动化测试——设置元素等待
查看>>
Ubuntu下使用SVN
查看>>
shutdown与startup命令
查看>>
swift -- 计步器CMPedometer的使用
查看>>
zTree的重点
查看>>
Java 文件读写操作
查看>>
BDFL
查看>>
poj1411
查看>>
java中的throw与throws的区别
查看>>
Error: Password file read access must be restricted: /etc/cassandra/jmxremote.password
查看>>
常用的垃圾回收算法
查看>>
DP ZOJ 3872 Beauty of Array
查看>>
SSH整合报错:找不到元素 'beans' 的声明
查看>>
Spring 依赖注入方式详解
查看>>