特殊计数序列——第一类斯特林(stirling)数
第一类斯特林数
在这里我因为懒所以还是用\(S(n,m)\)表示第一类斯特林数,但一定要和第二类斯特林数区分开来
递推式
\(S(n,m)=S(n-1.m-1)+S(n-1,m)*(n-1)\)
其中\(S(0,0)=1,S(i,0)=0(i>0)\)
组合意义
\(n\)个元素组成\(m\)个圆排列的方案数
注意这里圆排列指的是两个排列经过旋转能重合的算一种方案
那么递推式就可以这样理解:对于当前的第\(n\)个元素,单独成一个圆排列有\(S(n-1,m-1)\)种方案,放在其它的圆排列中有\(S(n-1,m)*(n-1)\)种方案,即放在每个元素的左侧(右侧等价于另一个元素的左侧)
性质
1、\(S(n,1)=(n-1)!\)
圆排列定义
2、\(\sum_{i=1}^{n}S(n,i)=n!\)
我们知道\(1-n\)这\(n\)个元素能形成\(n!\)个个排列,也就是\(n!\)个置换,而将置换写成循环的形式,这又对应着一个圆排列,于是就建立起了\(n\)排列和第一类斯特林数一一对应的关系
3、\(x^\underline{n}=\sum_{i=0}^nS(n.i)(-1)^{n-i}x^i\),\(x^\overline{n}=\sum_{i=0}^nS(n,i)x^i\)
证明的话考虑数学归纳法,这里仅给出第一条的证明
\[
\begin{aligned}
x^{\underline{n+1}}=&(x-n)x^{\underline{n}}\\
=&(x-n)\sum_{i=0}^nS(n,i)(-1)^{n-i}x^i\\
=&\sum_{i=0}^nS(n,i)(-1)^{n-i}x^{i+1}-n\sum_{i=0}^nS(n,i)(-1)^{n-i}x^i\\
=&\sum_{i=1}^{n+1}S(n,i-1)(-1)^{n-i+1}x^i+n\sum_{i=0}^nS(n.i)(-1)^{n-i+1}x^i\\
=&\sum_{i=0}^{n+1}(S(n,i-1)+nS(n.i))(-1)^{n-i+1}x^i\\
=&\sum_{i=0}^{n+1}S(n+1,i)(-1)^{n-i+1}x^i
\end{aligned}
\]
求解第一类斯特林数
最普通的方法就是\(O(n^2)\)的递推啦,考虑有没有更优的方法
我们先丢结论:
\[
S(n,m)=[x^m]\prod_{i=0}^{n-1}(x+i)
\]
计算右式的话可以使用分治+NTT在\(O(nlog^2n)\)的时间内解决,但是这么做的理由是什么?
设现在求的是\(S(n,m)\)我们记\(f_n(x)=\prod_{i=0}^{n-1}(x+1)\),然后把这个式子写成类似于递推的形式:
\[
f_n(x)=(x+n-1)f_{n-1}(x)=xf_{n-1}(x)+(n-1)f_{n-1}(x)
\]
第一项\(xf_{n-1}(x)\)就相当于\(S(n-1,m-1)\),第二项\((n-1)f_{n-1}(x)\)就相当于\((n-1)*S(n-1,m)\),也就是说这个式子对应的递推式就是\(S(n,m)=S(n-1,m-1)+(n-1)*S(n-1,m)\),正确性也就显然了
特殊计数序列——第一类斯特林(stirling)数的更多相关文章
- 【HDU 4372】 Count the Buildings (第一类斯特林数)
Count the Buildings Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Othe ...
- hdu 4372 第一类stirling数的应用/。。。好题
/** 大意: 给定一系列楼房,都在一条水平线上,高度从1到n,从左侧看能看到f个, 从右侧看,能看到b个,问有多少种这样的序列.. 思路: 因为肯定能看到最高的,,那我们先假定最高的楼房位置确定,那 ...
- 【2019雅礼集训】【CF 960G】【第一类斯特林数】【NTT&多项式】permutation
目录 题意 输入格式 输出格式 思路 代码 题意 找有多少个长度为n的排列,使得从左往右数,有a个元素比之前的所有数字都大,从右往左数,有b个元素比之后的所有数字都大. n<=2*10^5,a, ...
- CF960G Bandit Blues 第一类斯特林数、NTT、分治/倍增
传送门 弱化版:FJOI2016 建筑师 由上面一题得到我们需要求的是\(\begin{bmatrix} N - 1 \\ A + B - 2 \end{bmatrix} \times \binom ...
- HDU3625(SummerTrainingDay05-N 第一类斯特林数)
Examining the Rooms Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- 组合计数 && Stirling数
参考: http://blog.csdn.net/qwb492859377/article/details/50654627 http://blog.csdn.net/acdreamers/artic ...
- CF960G(第一类斯特林数)
题目 CF960G 做法 设\(f(i,j)\)为\(i\)个数的序列,有\(j\)个前缀最大值的方案数 我们考虑每次添一个最小数,则有:\(f(i,j)=f(i-1,j)+(i-1)*f(i-1,j ...
- UVA11077 Find the Permutations —— 置换、第一类斯特林数
题目链接:https://vjudge.net/problem/UVA-11077 题意: 问n的全排列中多有少个至少需要交换k次才能变成{1,2,3……n}. 题解: 1.根据过程的互逆性,可直接求 ...
- CF960G Bandit Blues(第一类斯特林数)
传送门 可以去看看litble巨巨关于第一类斯特林数的总结 设\(f(i,j)\)为\(i\)个数的排列中有\(j\)个数是前缀最大数的方案数,枚举最小的数的位置,则有递推式\(f(i,j)=f(i- ...
随机推荐
- cocos creator主程入门教程(九)—— 瓦片地图
五邑隐侠,本名关健昌,10年游戏生涯,现隐居五邑.本系列文章以TypeScript为介绍语言. 这一篇介绍瓦片地图,在开发模拟经营类游戏.SLG类游戏.RPG游戏,都会使用到瓦片地图.瓦片地图地面是通 ...
- QuickBI助你成为分析师——计算字段功能
摘要: 在用户创建报表时,通过现有字段数据不能直接满足展示需求,需要进行一定建模操作.目前产品支持在数据集编辑界面进行初步建模,下面主要介绍新建字段功能,以达到展示需求. 在用户创建报表时,有时通过现 ...
- vue学习之ajax 简单快速使用axios
vue2.x 推荐使用axios 1.首先使用安装 npm install axios -S 2.在哪用在哪引入 import axios from 'axios' 或则在main.js 中引入 在申 ...
- Python 标准类库- 因特网协议于支持之UUID
标准类库- 因特网协议于支持之UUID by:授客 QQ:1033553122 测试环境 python3 UUID生成函数定义 uuid.getnode() 获取一个表示硬件地址的48位正整数.第 ...
- 高通方案的Android设备几种开机模式的进入与退出
高通方案的Android设备主要有以下几种开机模式,Android.EDL.Fastboot.Recovery和FFBM,其进入及退出的方式如下表. 开机模式 屏幕显示 冷启动 热启动 按键退出 命令 ...
- Android探究之ANR
什么是ANR ANR:Application Not Responding,即应用程序无响应. 在Android中,ActivityManagerService(简称AMS)和WindowManage ...
- C#几个经常用到的字符串的截取
string str="123abc456";int i=3;1 取字符串的前i个字符 str=str.Substring(0,i); // or str=str.Remov ...
- 64位Win7下Asp.net项目连接Oracle时报ORA-6413:连线未打开异常
当时小弟碰到这个问题的时候,也找了挺久的回答,但是回答都是模棱两可的说是因为()的问题,但是没有给出具体的解决方案,这里小弟就用一个比较笨的方法来解决这个问题. 第一种:就是使用本地IISWeb服务器 ...
- kali权限提升之本地提权
kali权限提升之本地提权 系统账号之间权限隔离 操作系统的安全基础 用户空间 内核空间 系统账号: 用户账号登陆时候获取权限令牌 服务账号无需用户登录已在后台启动服务 windows用户全权限划分: ...
- 【记录】使用在线KMS激活win10系统
摘要 网上一些激活工具可能捆绑了木马.病毒.使用激活工具有风险.使用在线KMS来激活系统则没有这个风险.(自测至发布日期仍然可用) (有能力的请支持正版windows系统) 将kms服务器地址设置为k ...