一、斐波那契数列

$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常用四大数列的更多相关文章

  1. SQL基础随记1 SQL分类 常用函数 ALL ANY EXISTS IN 约束

    SQL基础随记1 SQL分类 常用函数 ALL ANY EXISTS IN 约束   其实这里知识不难,只是好久不接触突然被问的话有时还真的一时答不上,自己写一遍胜过盲扫.当然,也有些常读常新的地方会 ...

  2. HTML5 乱记

    HTML5 的文档类型声明可以触发所有具备标准模式的浏览器的标准模式,包括那些对 HTML5 一无所知的浏览器,也就是说,可以在任何网页中都使用 HTML5 文档类型声明 <!DOCTYPE h ...

  3. 【java】之常用四大线程池用法以及ThreadPoolExecutor详解

    为什么用线程池? 1.创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处-理效率2.线程并发数量过多,抢占系统资源从而导致阻塞3.对线程进行一些简单的管理 在Java中,线程池 ...

  4. Java常用四大线程池用法以及ThreadPoolExecutor详解

    为什么用线程池? 1.创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处-理效率 2.线程并发数量过多,抢占系统资源从而导致阻塞 3.对线程进行一些简单的管理 在Java中,线 ...

  5. OI常用的常数优化小技巧

    注意:本文所介绍的优化并不是算法上的优化,那个就非常复杂了,不同题目有不同的优化.笔者要说的只是一些实用的常数优化小技巧,很简单,虽然效果可能不那么明显,但在对时间复杂度要求十分苛刻的时候,这些小的优 ...

  6. OI常用数学定理&方法总结

    组合数计算($O(n)$) https://www.cnblogs.com/linzhuohang/p/11548813.html Lucas定理 如果要计算很大的组合数,但模数较小,考虑这个方法 对 ...

  7. AngularJS 乱记

    1. 前端简单逻辑 <title data-ng-bind="{true:' ('+notice_count+') '}[notice_count > 0]+{true:glob ...

  8. JS 乱记

    JS 中不存在块级作用域,也就是说在全局作用域下 if ,for 语句中用 var 声明的变量是全局变量. JS 中浮点数运算的值为近似值,比如:0.1 + 0.2 不等于 0.3 ,所以避免使用浮点 ...

  9. OI常用读入方式效率测试

    我来填坑了. 这次我用自己写的测试读入的程序来分别测试cin(不关闭流同步),scanf和读入优化的效率差别.   我们分别对三个阶段的数据量n进行测试,通过时间比对来观察性能的差异. n = 102 ...

随机推荐

  1. google breakpad 使用初步总结

    项目地址:https://code.google.com/p/google-breakpad/    访问不了请挂VPN 这是一个由google主导的开源项目,官方介绍为:An open-source ...

  2. 在spring data jpa中使用自定义转换器之使用枚举转换

    转载请注明http://www.cnblogs.com/majianming/p/8553217.html 在项目中,经常会出现这样的情况,一个实体的字段名是枚举类型的 我们在把它存放到数据库中是需要 ...

  3. [转]在asp.net mvc中使用PartialView返回部分HTML段

    本文转自:http://blog.csdn.net/sandy945/article/details/6307750 问题链接: MVC如何实现异步调用输出HTML页面 该问题是个常见的 case, ...

  4. AJPFX简述可变参数概述和使用

    A:可变参数概述 定义方法的时候不知道该定义多少个参数 B:格式 修饰符 返回值类型 方法名(数据类型… 变量名){} C:注意事项: 这里的变量其实是一个数组 如果一个方法有可变参数,并且有多个参数 ...

  5. ES3之bind方法的实现模拟

    扩展Function原型方法,此处用myBind来模拟bind实现 Function.prototype.myBind = function(o /*,args*/){       //闭包无法获取t ...

  6. yii在Windows下安装(通过composer方式)

    Composer 安装: (Composer 不是一个包管理器,它仅仅是一个依赖管理工具.它涉及 "packages" 和 "libraries",但它在每个项 ...

  7. iOS-UI控件之UITableView(四)- cell数据刷新

    TableView- 数据刷新 数据刷新 添加数据 删除数据 更改数据 全局刷新方法(最常用) [self.tableView reloadData]; // 屏幕上的所有可视的cell都会刷新一遍 ...

  8. Java.io.ObjectOutputStream.writeObject()方法实例

    java.io.ObjectOutputStream.writeObject(Object obj) 方法将指定对象写入ObjectOutputStream.该对象的类,类的签名,以及类及其所有超类型 ...

  9. 使用Win7 64位旗舰版光盘映像安装Windows Home basic 64位操作系统

    工作当中需要安装Windows home basic 64位操作系统,苦于手头没有该版本的安装光盘,也没时间下载其安装映像.因此,在现有资源“cn_windows_7_ultimate_with_sp ...

  10. 边框带阴影 box-shadow

    .chosen-container-active .chosen-single { border: 1px solid #5897fb; -webkit-box-shadow: 0 0 5px rgb ...