Some Conclusions.
没什么好写的。。(懒得补)
一些博客:http://www.cnblogs.com/GuessYCB/p/9090878.html
http://www.cnblogs.com/fenghaoran/p/remember.html
DP
四边形不等式
参考
一般对于如下形式状态转移方程:\(f[i][j]=\min\ or\ \max(f[i][k-1],f[k][j])+cost[i][j]\),\(i<j\)且\(i<k\leq j\)。
1. 四边形不等式
若一个函数\(cost[i][j]\),满足 \(cost[i][j]+cost[i'][j']\leq cost[i][j']+cost[i'][j]\),其中 \(i\leq i'<j\leq j'\),则称\(cost\)满足凸四边形不等式。(可理解为两交错区间之和不超过大区间与小区间之和)
2. 区间包含的单调性
若一个函数\(cost[i][j]\),满足 \(cost[i'][j]\leq cost[i][j']\),其中 \(i\leq i'<j\leq j'\),则称\(cost\)关于区间包含关系单调。(可理解为被包含的小区间\(cost\)之和不超过大区间)
3. 定理一
若\(cost\)同时满足四边形不等式和区间单调关系,则 \(f\) 也满足四边形不等式。
4. 定理二(关键)
若 \(f\) 满足四边形不等式,则决策单调,即 \(P[i][j-1]\leq P[i][j]\leq P[i+1][j]\) 或 \(P[i-1][j]\leq P[i][j]\leq P[i][j+1]\) 等,此处可据需要表示,只要 \(P\) 符合单调即可。据此可以缩小决策枚举区间,进行优化。
5. 定理三
\(cost\)为凸当且仅当 \(cost[i][j]+cost[i+1][j+1]\leq cost[i+1][j]+cost[i][j+1]\)。
据此可以简单验证cost是否满足凸四边形不等式,将 \(i'\) 具体为 \(i+1\),\(j'\) 具体为 \(j+1\),然后对式子变形,再固定一个变量,看做一个一元函数,进而判断单调性。如可变形为 \(cost[i+1][j+1]-cost[i+1][j]\leq cost[i][j+1]-cost[i][j]\),固定 \(j\),看 \(cost[i][j+1]-cost[i][j]\) 是关于 \(i\) 递增还是递减,若是递增,则cost为凸。
实际中大多只需打表观察cost是否满足四边形不等式、是否单调即可。具体可以见上面的链接。。(懒得再写)
数论 & 数学
见这儿。
数据结构
树链剖分
1. 如果边 u->v 为轻边,那么 \(size[v]\leq size[u]/2\)。
证明:若 \(size[v]>size[u]/2\),那么 u->v 会成为一条重边。
2. 树中任意两个节点之间的路径中重链、轻边的条数均不会超过\(log_2n\),即树上任意一条链由不超过\(log_2n\)条重链和轻边组成。
证明:从根到任意非根节点 每遇到一条轻边,size至少会减半。
### 左偏树的性质及$O(n)$的构造
[就粘个链接吧](http://www.yhzq-blog.cc/%e5%b7%a6%e5%81%8f%e6%a0%91%e5%ad%a6%e4%b9%a0%e6%80%bb%e7%bb%93/)。
图论
树
- (定义)删去重心后的树尽可能平衡,即以重心为根,所有子树大小都不超过整棵树的一半。
- 树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两个距离和,他们的距离和一样。例:BZOJ3510 首都.
- 把两棵树通过某一点相连得到一颗新的树,新的树的重心必然在连接原来两棵树重心的路径上。
- 一棵树添加或者删除一个节点,树的重心最多只移动一条边的位置。
- 树的中心一定在直径的中点上。树的中心是到最远点的距离最小的点。
- 从树上任意一个点 \(dfs\),所到达的所有最远的点都是直径的端点。
- 树的所有直径必交于某一点或某条边。
### 二分图
**1. 若一个图不存在奇环,那么这是二分图;如果含有奇一定不是二分图是二分图。(二分图中的环只能是偶环,无奇环)**
### 竞赛图
**Defination:**每对顶点之间都有一条(有向)边相连的有向图。
**性质:([证明见这](http://www.cnblogs.com/SovietPower/p/8461802.html))**
**1. 竞赛图一定存在哈密顿通路,强连通竞赛图一定存在哈密顿回路(强连通为其充要条件)。**
**2. $(n\geq 3\ ,3\leq i\leq n)$ n个点的强连通竞赛图中包含有长度为i的简单环。**
**3. 竞赛图缩点后一定是条链。**
### 平面图
**Defination:**若能将无向图G=(V,E)画在平面上使得任意两条无重合顶点的边不相交,则称G是平面图。
link: [可平面图--百度百科](https://baike.baidu.com/item/%E5%8F%AF%E5%B9%B3%E9%9D%A2%E5%9B%BE/19138688?fr=aladdin)
**性质:平面图的边数 $m\leq3*n-6$.**
应用:在平面图中将边数降到$O(n)$级别,如[BZOJ1997](http://www.cnblogs.com/SovietPower/p/8487571.html).
### 双连通分量
**Point(Edge) Biconnected Component)**
**Defination:**双连通分量分双连通分量和边双连通分量两种。若一个无向图中的去掉任意一个节点(一条边)都不会改变此图的连通性,即不存在割点(桥),则称作点(边)双连通图。
link: [双连通分量--百度百科](https://baike.baidu.com/item/%E5%8F%8C%E8%BF%9E%E9%80%9A%E5%88%86%E9%87%8F/5339004?fr=aladdin)
**性质1:如果一个双连通分量内的某些顶点在一个奇圈中(即双连通分量含有奇圈),那么这个双连通分量的其他顶点也在某个奇圈中;**
**性质2:如果一个双连通分量含有奇圈,则他必定不是一个二分图。反过来也成立,这是一个充要条件。**
字符串
后缀自动机
https://www.cnblogs.com/SovietPower/p/9118563.html。
复杂度分析
1.
大\(O\):
我们用记号\(O(n)\)表示一个量时(这个量关于\(n\)的阶不超过\(n\)的阶),它本身是否真的包含阶为\(n\)的项,都是不确定的。
——巴赫曼
公式$$f(n)=O(g(n)),对所有n成立 \tag{1}$$
表示存在一个常数\(C\),使得$$|f(n)|\leq C|g(n)|,对所有n成立 \tag{2}$$
大\(\Omega\):
大\(O\)给出了函数增长的上界,而下界有另外的一个记号,即大\(\Omega\)。
\]
大\(\mathcal O\):
大\(\mathcal O\)指出精确的增长的阶:$$f(n)=\mathcal O(g(n))\Leftrightarrow f(n)=O(g(n))且f(n)=\Omega(g(n)) \tag{4}$$
小\(o\):
爱德蒙·兰道曾创立过一个“小\(o\)”记号,$$f(n)=o(g(n))\Leftrightarrow|f(n)|\leq\varepsilon|g(n)|\ \ \ \ 所有n\geq n_0(\varepsilon)以及所有常数\varepsilon>0 \tag{5}$$
2. 均摊\(\leq\)严格\(<\)期望
(非持久化下)均摊 \(O(n)=\) 严格 \(O(n)\)。
期望 \(O(n)\) 仅在数据随机情况下 \(O(n)\),但是好像很难卡掉?
3. 启发式合并的总复杂度为 \(O(n\log n)\),因为每个点最多被合并 \(O(\log n)\) 次。
每个点被从小集合合并到大的集合中时,它的集合大小会翻倍。
支持finger search的数据结构启发式合并都是一个\(\log\)的,比如splay。
4. 复杂度均摊的数据结构不能实现可持久化。
5. LCT的本质是用Splay维护链剖分。LCT不用别的平衡树维护是因为Splay均摊分析下是\(O(\log n)\),其它平衡树是\(O(\log^2n)\)。
6. 形如这样的树形DP的复杂度:
void DFS(int x,int fa)
...
DFS(v=son[x],x);
for(int i=0; i<=size[x]; ++i)
for(int j=0; j<=size[v]; ++j)
tmp[i+j]=f[x][i]*f[v][j];
size[x]+=size[v];
...
复杂度是\(O(n^2)\)的。可以理解为每个点对只会在LCA处被统计一次,也可以归纳:
\(T(a+b)=T(a)+T(b)+ab\\\frac{(a+b)^2}{2}=\frac{a^2}{2}+\frac{b^2}{2}+ab\)
所以\(T(n)=\frac{n^2}{2}\)
或者:
7. 我个人对线段树合并复杂度的感性证明...(为啥这几段引用不能合起来啊)
每次合并两棵树,代价是两棵树的公共节点数,设它是\(x\)。
在合并完两棵树后,这两棵树的\(2*x\)个公共节点被合并成了\(x\)个,相当于删掉了\(x\)个点。
所以合并的代价(复杂度)就是,被合并点的点的个数,也就是删掉的点的个数。
而要删掉这个点就要先存在这个点,初始一共有\(n\log n\)个节点,所以删掉点的个数不会超过\(n\log n\),所以总复杂度不会超过\(n\log n\)。
如果初始是对每个节点进行一次区间修改,和插入单点一样只会影响\(\log n\)个点,所以初始还是一共最多有\(n\log n\)个点。
另外复杂度也不完全是公共节点数,因为还要从它往下一层才知道它是公共节点。
也许是这个能卡些线段树合并的复杂度吧,但是影响不大不管了。
8. \(\frac{2^{2n}}{C_{2n}^n}=O(\sqrt n)\)。
Some Conclusions.的更多相关文章
- Spring Data JPA Tutorial Part Nine: Conclusions(未翻译)
This is the ninth and the last part of my Spring Data JPA tutorial. Now it is time to take a look of ...
- BAYESIAN STATISTICS AND CLINICAL TRIAL CONCLUSIONS: WHY THE OPTIMSE STUDY SHOULD BE CONSIDERED POSITIVE(转)
Statistical approaches to randomised controlled trial analysis The statistical approach used in the ...
- Conclusions about Deep Learning with Python
Conclusions about Deep Learning with Python Last night, I start to learn the python for deep learn ...
- <2014 12 28> Some conclusions and thought recently
Since last year August when I started to prepare for the IELTS examiation, it took one year's time f ...
- Automated Memory Analysis
catalogue . 静态分析.动态分析.内存镜像分析对比 . Memory Analysis Approach . volatility: An advanced memory forensics ...
- 1Z0-050
QUESTION 13 View the Exhibit.Examine the following command that is executed for the TRANSPORT table ...
- Hadoop 全分布模式 平台搭建
现将博客搬家至CSDN,博主改去CSDN玩玩~ 传送门:http://blog.csdn.net/sinat_28177969/article/details/54138163 Ps:主要答疑区在本帖 ...
- OpenCASCADE Quaternion
OpenCASCADE Quaternion eryar@163.com Abstract. The quaternions are members of a noncommutative divis ...
- Mesh Algorithm in OpenCascade
Mesh Algorithm in OpenCascade eryar@163.com Abstract. Rendering a generic surface is a two steps pro ...
随机推荐
- poj3417lca+树上差分
/* 给定n个点的树,在其中加入m条新边(称为非树边) 现在可以割断一条树边,一条非树边,使图分裂成两个联通块,请问有几种切割方式 对树边进行分情况讨论 如果树边不处在环中,则割断这条树边后可以割断任 ...
- uva11916 bsgs算法逆元模板,求逆元,组合计数
其实思维难度不是很大,但是各种处理很麻烦,公式推导到最后就是一个bsgs算法解方程 /* 要给M行N列的网格染色,其中有B个不用染色,其他每个格子涂一种颜色,同一列上下两个格子不能染相同的颜色 涂色方 ...
- bzoj 1076
发现自己已经把期望dp忘光了... 其实本质上非常简单,就是利用状压的思想跑期望 首先很容易设计出状态:记状态f[s][i]表示到了第i个点,之前已选过的点的状态为s时所能获得的最大期望得分 但是会发 ...
- 微信公众号开发调用自带地图 不显示(openLocation)
1.需要在wx.config中声明需要使用的功能(openLocation) 例如: wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端aler ...
- 目标检测算法之YOLOv1与v2
YOLO:You Only Look Once(只需看一眼) 基于深度学习方法的一个特点就是实现端到端的检测,相对于其他目标检测与识别方法(如Fast R-CNN)将目标识别任务分成目标区域预测和类别 ...
- hdfs数据到hive中,以及hdfs数据隐身理解
hdfs数据到hive中: 假设hdfs中已存在好了数据,路径是hdfs:/localhost:9000/user/user_w/hive_g2park/user_center_enterprise_ ...
- github协作开发遇到的问题
1.十一来了,帝都不好买票,30号就调休一天回去了,项目还没搞完,紧张的不行,就自己和同事搞了一个github协作开发,由于是功能和公司项目不是很沾边,但是是自己的主要工作,就和同事协调了一下,搭建了 ...
- 【转】Crosswalk入门
原文:https://www.mobibrw.com/2015/1934 Crosswalk是一款开源的web引擎.目前Crosswalk正式支持的移动操作系统包括Android和Tizen,在And ...
- 【bzoj2023/1630】[Usaco2005 Nov]Ant Counting 数蚂蚁 dp
题解: 水题 f[i][j] 前i种用了j个,前缀和优化就可以了
- 【bzoj3174】[Tjoi2013]拯救小矮人
题解: 这题非常容易想到一个错误的贪心 就是按照ai排序 然后尽量取ai小的 但是有很明显的问题就是如果取了小的ai 那会导致那些原本可能存在这些ai就可以去掉的大的人因此不能取了 而有可能可以先去取 ...