乱记结论之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 ...
随机推荐
- 工厂方法模式及php实现
工厂方法模式: 工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Facto ...
- git push代码时的'git did not exit cleanly (exit code 1)'问题解决
在利用git管理本地发布的galleryLeftOrRight插件项目时,按照git的使用方法:先commit→master,再 push,发现提示错误git did not exit cleanly ...
- git忽略文件权限的检查
在linux上配置了一个samba服务器,方便在linux上通过ide修改代码,然后发现一个很烦人的问题,就是没有修改权限,在使用命令 chmod 777 filename后可以修改了,然而使用git ...
- 掌握Spark机器学习库-07.14-保序回归算法实现房价预测
数据集 house.csv 数据集概览 代码 package org.apache.spark.examples.examplesforml import org.apache.spark.ml.cl ...
- 洛谷——P2680 运输计划
https://www.luogu.org/problem/show?pid=2680 题目背景 公元 2044 年,人类进入了宇宙纪元. 题目描述 L 国有 n 个星球,还有 n-1 条双向航道,每 ...
- (转)淘淘商城系列——SSM框架整合之表现层整合
http://blog.csdn.net/yerenyuan_pku/article/details/72721120 上文我们一起学习了Service层的整合,本文将教大家如何整合表现层. 我们在t ...
- arp - Linux的ARP核心模块
描述 这个核心协议模块实现RFC826中定义的 Address Resolution Protocol [译注:即TCP/IP的第三层到第一层的地址转换协议],用于在直接相连的网络中换第二层硬件地址和 ...
- SQL_Server_2008定期自动备份详细图解
SQL_Server_2008定期自动备份详细图解 设置自动数据库的定期备份计划. http://wenku.baidu.com/link?url=Tu ...
- oracle将一个字段拆分成多个值 (regexp_substr函数)
select regexp_substr(p.attributename, '[^,]+',1,level) c1from tablename p connect by level <= len ...
- gulp 前缀
var gulp = require('gulp'), autoprefixer = require('gulp-autoprefixer'); gulp.task('testAutoFx', fun ...