乱记结论之OI常用四大数列
一、斐波那契数列
$f(0)=1,f(1)=1,f(i)=f(i-1)+f(i-2) \ \ \ \ (i>=2)$
经典的解释是兔子生小孩,第0年一对兔子,一对兔子需要一年长大,后面每年都生小孩,每次刚好生一对,问第i年有多少只。就这么算。
经典的应用是矩阵乘法!稍微写一下:
\begin{vmatrix}
1 & 1 \\
1 & 0
\end{vmatrix} * \begin{vmatrix}
f(i) \\
f(i-1)
\end{vmatrix} = \begin{vmatrix}
f(i+1)\\
f(i)
\end{vmatrix}
二、卡特兰数
$C(0)=C(1)=1,C(n)=\sum_{k=0}^{n-1} C(k)C(n-k-1)$
$C(n)=C(2n,n)-C(2n,n-1)$
$C(n)=C(n-1)*(4*n-2)/(n+1)$
例子多了。出入栈序列,划分三角形,走格子不越过对角线,等等。
两种理解方式:分治,分成两个部分变成式一;计数,在瞎构造的序列中挑掉不合法的,对应方案是把第一个遇到不合法的位置以前全部取反,后面不变,建立一个和C(2n,n-1)的对应关系。
三、贝尔数
$B(n)=\sum_{k=0}^{n-1} C(n-1,k)B(k)$
贝尔数是第二类斯特林数的一行的和,直接用上面方法可nlogn求一个贝尔数。
如果要求一系列贝尔数,考虑最后一个元素所在集合大小,有$f(i)=\sum_{k=1}^{i} C_{i-1}^{k-1}f(i-k)$,一卷积,前面对后面有贡献,可CDQ+FFT在$nlog^2n$时间求解。

贴图都是不懂的。
三点五、范德蒙恒等式
$C_{n+m}^k=\sum_{i=0}^{k}C_n^iC_m^{k-i}$
证明用生成函数。
四、斯特林数
第二类:s(n,m)--n个元素分到m个相同盒子,$s(n,m)=s(n-1,m-1)+s(n-1,m)*m$
还可以这么玩:不考虑是否空盒子,那答案就$\frac{m^n}{m!}$,然后容斥一下,枚举几个空盒子,$s(n,m)=\frac{1}{m!}*\sum_{i=0}^{m}(-1)^iC_m^i(m-i)^n$,后面一卷积,可用多项式乘法得一行斯特林数。
他喜欢和指数玩:$i^j=\sum_{k=1}^{j}S(j,k)k!C_i^k$
第一类:s(n,m)--n个元素排成m个圈圈,$s(n,m)=s(n-1,m-1)+s(n-1,m)*(n-1)$,排在每个数的左边。
五、默慈金数
$M(n)$--一个圆上n个点,问点间连线不相交的方案。或者在坐标轴上,一步之内可以往左往右或不动,问最后到原点的方案。
一、$M(n+1)=M(n)+\sum_{i=0}^{n-1}M(i)M(n-1-i)=\frac{(2n+3)M(n)+3nM(n-1)}{n+3}$
二、$M(n)=\sum_{i=0}^{\left \lfloor \frac{n}{2} \right \rfloor}C_n^{2i}Cat(i)$
(不是很懂这字咋变小了)
乱记结论之OI常用四大数列的更多相关文章
- SQL基础随记1 SQL分类 常用函数 ALL ANY EXISTS IN 约束
SQL基础随记1 SQL分类 常用函数 ALL ANY EXISTS IN 约束 其实这里知识不难,只是好久不接触突然被问的话有时还真的一时答不上,自己写一遍胜过盲扫.当然,也有些常读常新的地方会 ...
- HTML5 乱记
HTML5 的文档类型声明可以触发所有具备标准模式的浏览器的标准模式,包括那些对 HTML5 一无所知的浏览器,也就是说,可以在任何网页中都使用 HTML5 文档类型声明 <!DOCTYPE h ...
- 【java】之常用四大线程池用法以及ThreadPoolExecutor详解
为什么用线程池? 1.创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处-理效率2.线程并发数量过多,抢占系统资源从而导致阻塞3.对线程进行一些简单的管理 在Java中,线程池 ...
- Java常用四大线程池用法以及ThreadPoolExecutor详解
为什么用线程池? 1.创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处-理效率 2.线程并发数量过多,抢占系统资源从而导致阻塞 3.对线程进行一些简单的管理 在Java中,线 ...
- OI常用的常数优化小技巧
注意:本文所介绍的优化并不是算法上的优化,那个就非常复杂了,不同题目有不同的优化.笔者要说的只是一些实用的常数优化小技巧,很简单,虽然效果可能不那么明显,但在对时间复杂度要求十分苛刻的时候,这些小的优 ...
- OI常用数学定理&方法总结
组合数计算($O(n)$) https://www.cnblogs.com/linzhuohang/p/11548813.html Lucas定理 如果要计算很大的组合数,但模数较小,考虑这个方法 对 ...
- AngularJS 乱记
1. 前端简单逻辑 <title data-ng-bind="{true:' ('+notice_count+') '}[notice_count > 0]+{true:glob ...
- JS 乱记
JS 中不存在块级作用域,也就是说在全局作用域下 if ,for 语句中用 var 声明的变量是全局变量. JS 中浮点数运算的值为近似值,比如:0.1 + 0.2 不等于 0.3 ,所以避免使用浮点 ...
- OI常用读入方式效率测试
我来填坑了. 这次我用自己写的测试读入的程序来分别测试cin(不关闭流同步),scanf和读入优化的效率差别. 我们分别对三个阶段的数据量n进行测试,通过时间比对来观察性能的差异. n = 102 ...
随机推荐
- Coprime Conundrum 容斥原理
https://www.hackerrank.com/contests/hourrank-13/challenges/arthur-and-coprimes 我们可以枚举每一个p在[2, sqrt(n ...
- Solr中的group与facet的区别 [转]
Solr中的group与facet的区别 facet 自己理解就是分组聚合用的, 如下说明 http://blog.csdn.net/a925907195/article/details/472572 ...
- web+ admin template,spa管理应用后台,easyui后台正式发布
演示地址:http://admintemplate.webplus.org.cn/ v1.0 (2016/7/27) 扁平化风格 全屏支持 后台管理不使用iframe,全ajax开发 权限管理 商品管 ...
- js 常用处理
判断浏览器环境是PC端还是手机端 function goPAGE() { if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios| ...
- Glide清除缓存
Glide是谷歌推荐的一款加载图片的第三方框架,对内存优化更好,更省资源,他的众多好处,我就不一一描述了,有兴趣的朋友可以百度一下,介绍的还是挺详细的. 今天主要给大家介绍一下关于怎么获取Glide的 ...
- .NET 之ViewState的本质
ViewState是如何实现这些功能. 以名值对的方式来存控件的值,和Hashtable的结构类似: 跟踪那些ViewState中出现改变的值,以便对这些脏数据(dirty)进行进一步的处理: 通过序 ...
- 微信小程序组件解读和分析:八、checkbox复选项
checkbox复选项组件说明: checkbox是小程序表单组件中的一个组件,作用是在表单中引导用户做出选择. 要使用checkbox组件,还需要在同组中所有的checkbox标签外使用checkb ...
- HTML标签的分类
html中的标签元素大体被分为三种不同的类型:块状元素.内联元素和内联块状元素.常用的块状元素有:<div>.<p>.<h1>...<h6>.<o ...
- Mysql:is not allowed to connect to this MySQL server [转]
原文链接http://www.blogjava.net/acooly/archive/2008/09/17/229368.html 如果你想连接你的mysql的时候发生这个错误:ERROR 1130: ...
- 2017huas_ACM第三天
暑假集训第三天. 就在刚才AC了第十题,本周做题拿到了满分. 软件工程专业没有学习C++语言,这在做题过程中给了我不少的麻烦.遇到什么不懂的,不确认的,都要上网查阅或者开了新项目自己尝试一下.耗费了不 ...