hoho~~.話說好久沒有長時間地鑽研演算法問題了,這次鑽研了好幾道,寫出來了.感覺非常不錯.而且,網咖旁邊沒有人,想寫什麼就寫什麼,哈哈.
問題描述是這樣的,一塊電路板,上面鑲嵌電氣元件,涉及到分布問題.因為可能出現兩塊元件出現覆蓋的問題,嗯.這就是問題的基本描述,接下來說下去.理所當然地使用區間樹來解決這個問題,先將輸入塊按照x座標排序,從而得到座標的範圍.只檢查這個範圍就好了.接下來,用一條線從左道右掃瞄這塊區域,如果遇到塊的左邊,則依據該塊的y座標去區間樹中檢查是否出現重疊.這裡需要說明的是,實現中包含了找出所有覆蓋的塊的方法以及僅找出覆蓋的最左面的塊的方法.具體的問題根據具體需要吧.畢竟是一道演算法問題,沒有大肆進行包裝.呵呵.接著說下去.將這塊的y座標插入分割槽樹中,無論是否出現重疊;如果,是某個塊的右邊,則從區間樹中刪除這個塊,因為它已經不在當前的考察範圍內了.
就這樣,進行下去了.思路很清晰,實現的細節不難.
雖然是c++檔案,我沒有使用多少c++特性.感覺,用c++寫得很舒服.嗯.這一輪的演算法研究之後,就又繼續c++了.如此往復,呵呵.
總是這樣,寫的時候,琢磨著寫出來之後,說說這,說說那.一旦寫完了,不想說太多了.呵呵.
貼出來吧.
洛谷 1437 擴散
這道題是一道典型的二分 就是判斷有點麻煩 蒟蒻 題目說 兩個點a b連通,記作e a,b 當且僅當a b的擴散區域有公共部分。連通塊的定義是塊內的任意兩個點u v都必定存在路徑e u,a0 e a0,a1 e ak,v 也就是說乙個點擴散到另乙個點的 時間 就是他們的橫縱座標差值的和 xi xj y...
演算法導論 隨機演算法
一.概率分布 對於有些問題本身是屬於概率問題,如僱傭問題 對於此類問題,我們需要利用概率分析來得到演算法的執行時間,有時也用來分析其他的量。例如,僱傭問題中的費用問題也需要結合概率分析來計算得到。為了使用概率分析,我們必須使用或者假設已知關於輸入的概率分布,然後通過分析該演算法計算出平均情況下的執行...
《演算法導論》 演算法導論2 2 1插入排序
2.1 插入排序。我們分析的第乙個演算法是插入排序演算法,輸入 n個數 a1,a2,a3,a4,a5,a6,a7 an 輸出 序列的乙個排列 即重新排序 a1 a2 a3 使a1 a2 a3 插入排序演算法的偽 是以乙個過程的形式給出的,稱為insertion sort,它的引數是乙個陣列。包括了n...