本文用勢能法證明\(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)\)的,這要用到攤還分析. 模板 這里用到的模板是算競 ...