首先簡單闡述一下遞歸,分治算法,動態規划,貪心算法這幾個東西的區別和聯系,心里有個印象就好。 遞歸是一種編程技巧,一種解決問題的思維方式;分治算法和動態規划很大程度上是遞歸思想基礎上的(雖然實現動態 ...
首先簡單闡述一下遞歸,分治算法,動態規划,貪心算法這幾個東西的區別和聯系,心里有個印象就好。 遞歸是一種編程技巧,一種解決問題的思維方式;分治算法和動態規划很大程度上是遞歸思想基礎上的(雖然實現動態 ...
懸線法 什么是懸線法? 懸線法是用來解決最大子矩形問題的有力武器,它的思想很簡單,代碼也很好寫。 懸線法的適用范圍是單調棧的子集。具體來說,懸線法可以應用於滿足以下條件的題目: 需要在掃 ...
簡介 離散化本質上可以看成是一種 哈希 ,其保證數據在哈希以后仍然保持原來的全/偏序關系。 通俗地講,就是當我們只關心數據的大小關系時,用排名代替原數據進行處理的一種預處理方法。離散化本質上是一種 ...
「Meissel-Lehmer 算法」是一種能在亞線性時間復雜度內求出 \(1\sim n\) 內質數個數的一種算法。 在看素數相關論文時發現了這個算法,論文鏈接:Here。 算法的細節來 ...
引言 棧(stack)是很簡單的一種數據結構,先進后出的邏輯順序,符合某些問題的特點,比如說函數調用棧。 單調棧實際上就是棧,只是利用了一些巧妙的邏輯,使得每次新元素入棧后,棧內的元素都保持有序( ...
Pow(x, n) 方法一:暴力法 方法二:遞歸快速冪算法 方法三:迭代快速冪算法 方法四:位運算法 方法一:暴力法 思路 只需模擬將 x 相乘 n 次的過程。 如果 ...
這個算法的正式名字是:“Twelvefold way”,共用12種情況。 本文轉載自:自為風月馬前卒的博文:淺談"n個球"和"m個盒子"之間的關系 一、球異,盒同 不空 該情況為經 ...
本節部分內容譯自博文 Решето Эратосфена 與其英文翻譯版 Sieve of Eratosthenes。其中俄文版版權協議為 Public Domain + Leave a Lin ...
原地算法(in-place algorithm) 在計算機科學中,一個原地算法(in-place algorithm)基本上不需要額外輔助的數據結構,然而,允許少量額外的輔助變量來轉換數據的算法。當 ...
匈牙利算法介紹 匈牙利算法(Hungarian algorithm)主要用於解決一些與二分圖匹配有關的問題,所以我們先來了解一下二分圖。 二分圖(Bipartite graph)是一類特殊的圖,它 ...