上午noi.ac崩崩崩了,栽在组合数学上,虽说最后在辰哥&Chemist的指导下A掉了此题,也发现自己组合数学太弱了qwq。

在luogu上找题,结果找到了一个第二类斯特林数的题(还是双倍经验,逃。)

一、什么是第二类Stirling数

第二类斯特林数 S(n,k):把 n 个元素划分成 k 个集合的方案数。 

这个问题说的实际一点,就比如说,有n个互异的小球,把他们放入m个盒子里,盒子里不允许为空的方案数。我们设s(i,j)表示放到i个小球,j个盒子的方案数。

那么对于每个小球,当前我们有两种放法:

  第一种,我们把它放进一个现在盒子里没球的盒子中,这部分是s(i-1,j-1)

  第二种,我们把它放进一个现在盒子里有球的盒子中,因为有j个盒子,所以这部分是  j  *  s (i-1,j)

  那么将二者 加起来就是我们要求的解。

二、丢几道例题跑

LuoguP3904三只小猪  比较裸啦=w=。

 #include<cstdio>
#include<algorithm> using namespace std;
typedef long long ll; ll n,m;
int len;
int ans[];
int s[][][]; ll lmin(ll a,ll b)
{
if(a<b) return a;
else return b;
} void bigcalc(int x,int y)
{
if(y>x) return ;
if(x==&&y==) return ;
int tmp=;
for(int i=;i<=len;i++) ans[i]=;
len=;
for(int i=;i<=s[x-][y][];i++)
{
ans[i]=s[x-][y][i]*y+tmp;
tmp=ans[i]/;
ans[i]%=;
}
len=s[x-][y][];
if(tmp) ans[++len]=tmp;
s[x][y][]=;
tmp=;
while(s[x][y][]<=s[x-][y-][]||s[x][y][]<=len)
{
s[x][y][s[x][y][]]=s[x-][y-][s[x][y][]]+ans[s[x][y][]]+tmp;
tmp=s[x][y][s[x][y][]]/;
s[x][y][s[x][y][]]%=;
s[x][y][]++;
}
s[x][y][s[x][y][]]=tmp;
if(s[x][y][s[x][y][]]==&&s[x][y][]!=) s[x][y][]--;
} int main()
{
scanf("%lld%lld",&n,&m);
if(n<m) {printf("");return ;}
if(n==m) {printf("");return ;}
s[][][]=;s[][][]=;
for(int i=;i<=n;i++)
for(int j=;j<=lmin(i,m);j++)
bigcalc(i,j);
for(int i=s[n][m][];i>=;i--)
printf("%d",s[n][m][i]);
return ;
}

LuoguP1655小朋友的球 上面题的二倍经验

三、一些变体

(来自baidubaike==)

第二类Stirling数初探 By cellur925的更多相关文章

  1. lightOJ 1326 Race(第二类Stirling数)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1326 题意:有n匹马赛跑.问有多少种不同的排名结果.可以有多匹马的排名相同. 思路:排 ...

  2. [总结] 第二类Stirling数

    上一道例题 我们来介绍第二类Stirling数 定义 第二类Stirling数实际上是集合的一个拆分,表示将n个不同的元素拆分成m个集合的方案数,记为 或者 .和第一类Stirling数不同的是,集合 ...

  3. 第二类Stirling数

    第二类斯特林数 第二类Stirling数:S2(p, k) 1.组合意义:第二类Stirling数计数的是把p个互异元素划分为k个非空集合的方法数 2.递推公式: S2(0, 0) = 1 S2(p, ...

  4. [BZOJ5093]图的价值(NTT+第二类Stirling数)

    5093: [Lydsy1711月赛]图的价值 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 250  Solved: 130[Submit][Sta ...

  5. LightOJ 1326 – Race 第二类Stirling数/

    简单的模板题. 题意:问n匹马出现的不同排名数. 题解:可以使用DP,本质上还是第二类Stirling数(隔板法) #include <stdio.h> #include <iost ...

  6. HDU 2643 Rank:第二类Stirling数

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2643 题意: 有n个个选手参赛,问排名有多少种情况(可以并列). 题解: 简化问题: 将n个不同的元素 ...

  7. 自然数幂和——第一类Stirling数和第二类Stirling数

    第一类Stirling数 首先设 $$S_k(n)=\sum_{i=0}^ni^k$$ 根据第一类斯特林数的定义(P是排列数,C是组合数,s是Stirling) $$C_n^k={P_n^k\over ...

  8. (转) [组合数学] 第一类,第二类Stirling数,Bell数

    一.第二类Stirling数 定理:第二类Stirling数S(p,k)计数的是把p元素集合划分到k个不可区分的盒子里且没有空盒子的划分个数. 证明:元素在哪些盒子并不重要,唯一重要的是各个盒子里装的 ...

  9. 第一类和第二类Stirling数

    做了老是忘…… 实际问题: 找维基百科.百度百科…… 第一类Stirling数 n个元素构成m个圆排列 S(n,m)=S(n-1,m-1)+(n-1)*S(n-1,m) 初始 S(0,0)=1 S(n ...

随机推荐

  1. Struts2学习(二)运行Action中方法的三种方式

    1.运行execute()方法 一般的能够直接在action中书写execute,调用action时会自己主动运行此方法 2.配置method方法 在struts.xml中配置action时.写met ...

  2. 文件管理中心iOS版简介

    App Store地址:https://itunes.apple.com/cn/app/id1023365565?mt=8 文件管理中心-装机必备的文件管家,专业的rar-zip 解压工具,局域网看片 ...

  3. poj 1180 Batch Scheduling (斜率优化)

    Batch Scheduling \(solution:\) 这应该是斜率优化中最经典的一道题目,虽然之前已经写过一道 \(catstransport\) 的题解了,但还是来回顾一下吧,这道题其实较那 ...

  4. 10162 - Last Digit (数论+周期规律)

    UVA 10162 - Last Digit 题目链接 题意:求S=(11+22+...NN)%10 思路:打出0-9的每一个周期,发现周期为1或2或4.所以S是以20一个周期,打出表后发现20为4. ...

  5. mysql优化-----多列索引的左前缀规则

    索引优化策略 :索引类型 .1B-tree索引 关注的是:Btree索引的左前缀匹配规则,索引在排序和分组上发挥的作用. 注:名叫btree索引,大的方面看都用的二叉树.平衡树.但具体的实现上,各引擎 ...

  6. maven依赖排除

    单依赖过滤 同依赖过滤直接处理:可以过滤一个或者多个,如果过滤多个要写多个<exclusion>. <dependency> <groupId>org.apache ...

  7. spring的依赖注入(DI)、控制反转(IOC)和面向切面(AOP)

    在spring的配置文件增加 <context:component-scan base-package="com.jmu.ccjoin.service"/> <c ...

  8. (linux)main.c中的初始化

    main.c中的初始化 head.s在最后部分调用main.c中的start_kernel() 函数,从而把控制权交给了它. 所以启动程序从start_kernel()函数继续执行.这个函数是main ...

  9. hihocoder #1039 : 字符消除 ( 字符串处理类 ) 好久之前做的题目,具体的算法代码中阅读吧

    #1039 : 字符消除 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近在玩一个字符消除游戏.给定一个只包含大写字母"ABC"的字符串s,消 ...

  10. SDUT OJ 2054 双向链表的实现 (结构体node指针+遍历 *【模板】)

    双向链表 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 学会了单向链表,我们又多了一种解决问题的能力,单链表利用一个指针就能在内 ...