原创 第五章_散列

散列表ADT,只支持二叉樹查找所允許的一部分操作。比如插入,刪除,查找等。那些需要元素間排序信息的操作將不會得到支持。比如FindMin,FindMax和線性時間按排序順序打印整個表的操作時不支持的。   散列函數在理想狀態是能將任何兩個

原创 POJ 1976 A Mini Locomotive

題意:有三個火車頭,每個最多能拉k個車廂,一共有n個車廂,每個車廂裏都有乘客,每個火車頭拉的車廂都是連續的。問能拉的最多的乘客數。 分析:先一看好像沒有什麼思路,然後用動態規劃的思想慢慢想: 假設F[i][j]表示用i個火車頭在前j個車廂

原创 第四章 樹(2)

AVL樹 一棵AVL樹是每個節點的左子樹和右子樹的高度最多相差1的二叉查找樹(空樹的高度定義爲-1)。   插入一個節點可能會破壞AVL樹的平衡性。如果發生這種情況就需要把平衡性質恢復了之後才認爲插入這步完成。   在插入之後,只有那些從

原创 POJ 1276 cash machine

分析:題目的意思是,給出需要的總金額和每種面值錢的數量,求能夠獲得的接近總金額的最大的金額。總金額0 <=cash <= 100000,所以揹包的容量就是100000。而cost和weight都是面值D[k]。 又是一道多重揹包的問題,毫

原创 POJ 1742 coins

題意:給出幾種面值的錢幣和對應的個數,看能否湊出1-m中的各個面值。 分析:顯然,多重揹包問題。要求全部裝滿。而且對1-m遍歷並計數,毫無壓力~ 上代碼:#include <iostream> using namespace std;

原创 第二章_鏈路層

鏈路層的三個目的: 爲IP模塊發送和接收IP數據報; 爲ARP模塊發送ARP請求和接收ARP應答; 爲RARP發送RARP請求和接收RARP應答;   以太網是當今TCP/IP採用的主要局域網技術,它採用CSMA/CD(帶衝入檢測的載波偵

原创 3.1 抽象工廠

好了,七月的第一篇博客正式標誌着我的迴歸。六月已經過去,七月還是新的! GOF的書真的不好懂,不知道是我的原因還是我的原因?好吧,既然不懂只能參考csdn博客了:http://blog.csdn.net/u010064842/articl

原创 POJ 1384 PigBank

題意:題目的意思是有一個儲蓄罐,裏面放了硬幣,只知道儲蓄罐裝了硬幣和沒裝硬幣時的重量,並且知道每種面值硬幣的重量。現在要求儲蓄罐中可能的最小金額。若儲蓄罐中硬幣的重量和每種面值硬幣的重量不能匹配,則輸出impossible。 分析:這又是

原创 第四章 樹(1)

預備知識 樹的遞歸定義:一棵樹是一些節點的集合,這些集合可以是空集;若非空,則一棵樹由根節點r和0個或多個非空的子樹T1,T2,…,Tk組成,這些子樹中的每一棵的根都被來自根r的一條有向邊所連接。 樹的這種遞歸定義使得在編寫有關樹的程序時

原创 2184 cow exhibition

題意:給出N組數,每一組有Si和Fi兩個數,從中選出若干組,使得Si的和TS與Fi的和TF相加最大,並且TS和TF都必須大於等於0。Si和Fi從-1000到1000。 分析:這又是一道典型的揹包問題。我們這麼想,設dp[i][j]是前i組

原创 編程之美2.18_由數組分割到揹包問題(1)

編程之美上2.18題: 有一個無序,元素個數爲2n的正整數數組,要求:如何能把這個數組分割爲元素個數爲n的兩個數組,並使兩個子數組的和最接近? eg:1,5,7,8,9,6,3,11,20,17->1,3,11,8,20     5,7,

原创 各種排序算法總結

明天就要去參加阿里巴巴的實習生筆試了,雖然沒想着能進去,但是態度還是要端正的,也沒什麼可以準備的,複習複習排序吧。 1 插入排序 void InsertSort(int a[], int n) {       for (int i=1

原创 POJ 1787 Charlie's Change

題意:給定一個數P,要求用四種幣值爲1,5,10,25的硬幣拼成P,並且硬幣數要最多。 分析:這是一個多重揹包問題,但是要轉換一下思路,現在要求硬幣數量最多,那麼P是揹包容量,硬幣面值是cost,硬幣數量是weight。多重揹包問題加上u

原创 Trie樹的實現

Trie樹的實現 一、定義: Trie,又稱字典樹,是一種用於快速檢索的二十六叉樹結構。典型的空間換時間   二、結構圖: 三、原理: Trie把要查找的關鍵詞看作一個字符序列,並根據構成關鍵詞字符的先後順序檢索樹結構; 特別地:和

原创 5.2 Command命令模式

意圖: 將一個請求封裝爲一個對象,從而使你可用不同的請求對客戶進行參數化;對請求排隊或記錄請求日誌,以及支持可撤銷的操作。   類圖:  Command類:是一個抽象類,類中對需要執行的命令進行聲明,一般來說要對外公佈一個execut