本文用势能法证明\(Splay\)的均摊复杂度,对\(Splay\)的具体操作不进行讲述。 为了方便本文的描述,定义如下内容: 在文中我们用\(T\)表示一棵完整的\(Splay\),并(不严谨地)用\(|T|\)表示\(T\)这棵\(Splay\)的节点数目。 如无特殊说明,小写英文字母 ...
众所周知,树上背包如果上下界都卡紧了复杂度会是 O nm ,下面来进行这一点的证明。 以下设节点总数为 n ,背包容量最大是 m 。 合并两个泛化背包的复杂度为 O s s ,其中 s 是第一个泛化背包的容量, s 是第二个背包的容量,但这个复杂度是在背包容量不设上限的情况下。 而在树上背包中,容量是有上限的。做树上背包的过程,实际上就是把 n 个节点合并到一个背包的过程,显然,合并的总次数是 O ...
2022-01-03 07:17 1 1034 推荐指数:
本文用势能法证明\(Splay\)的均摊复杂度,对\(Splay\)的具体操作不进行讲述。 为了方便本文的描述,定义如下内容: 在文中我们用\(T\)表示一棵完整的\(Splay\),并(不严谨地)用\(|T|\)表示\(T\)这棵\(Splay\)的节点数目。 如无特殊说明,小写英文字母 ...
建堆的复杂度先考虑满二叉树,和计算完全二叉树的建堆复杂度一样。 对满二叉树而言,第 \(i\) 层(根为第 \(0\) 层)有 \(2^i\) 个节点。 由于建堆过程自底向上,以交换作为主要操作,因此第 \(i\) 层任意节点在最不利情况下, 需要经过 \((n - i)\) 次交换操作 ...
作者:Tobin 日期:2019/04/13 缘由:看python cookbook时,用到了heapq的库,书中提到,如果仅仅是返回一个数组的最大值,用max就可以了,但是如果返回多个较大或者 ...
min_25 筛是由 min_25 大佬使用后普遍推广的一种新型算法,这个算法能在 \(O({n^{3\over 4}\over log~ n})\) 的复杂度内解决所有的积性函数前缀和求解问题(个人感觉套上素数定理证明的复杂度的话应该要把下面的 log 改成 ln ,不过也差不多 ...
应该算是比较基础的知识了吧 …… 随便写写,主要内容是证明。 例题(现编的):有一棵 \(m\) 个点的有根树,每个点上有若干个数,\(m\) 个点上共有 \(n\) 个数,数的规模是 \(N\) 。每次询问给定 \(u,l,r\) ,求 \(u\) 的子树中有多少个数在 \([l,r]\) 中 ...
查询算法的流程 如果查询与当前结点的区域无交集,直接跳出。 如果查询将当前结点的区域包含,直接跳出并上传答案。 有交集但不包含,继续递归求解。 K-D Tree 如何划分区域 ...
非旋FHQ Treap复杂度证明(类比快排) a,b都是sort之后的排列(从小到大) 由一个排列a构造一颗BST,由于我们只确定了中序遍历=a,但这显然是不能确定一棵树的形态的。 由一个排列b构造一颗Heap(大根),由于没有重复元素,然后人为钦定左儿子<右儿子,那么他的后序遍历=b ...
引言 KMP算法应该是看了一次又一次,比赛的时候字符串不是我负责,所以学到的东西又还给网上的博客了…… 退役后再翻开看,看到模板,心想这不是\(O(n^2)\)的复杂度吗? 有两个循环也不能看做是\(O(n^2)\)的,这要用到摊还分析. 模板 这里用到的模板是算竞 ...