原创 動態規劃DP——矩陣連乘的最小計算量

1.問題分析 給定n個矩陣{A1,A2,A3,……,An},其中,Ai和Ai+1(i=1,2,3,……,n-1)是可乘的。矩陣乘法如圖所示: 用加括號的方法表示矩陣連乘的次序,不同的計算次序計算量是不同的,找出一種加括號的方法,使得矩

原创 廣度優先搜索BFS——迷宮解救2

1.問題分析  在上一篇博客中A同學前往迷宮解救B同學的行動中,我們用了深度優先搜索方法,這裏介紹另外一種可以使用的方法——廣度優先搜索(Breadth First Search,BFS),也稱爲寬度優先搜索。 依舊是用一個爲數組存儲

原创 數據結構——堆,小頂堆,大頂堆,堆排序

1.簡介  堆是什麼?堆是一種特殊的完全二叉樹,就像下面這棵樹一樣: 這棵樹有一個很顯著的特點,那就是所有父結點都要比子結點要小。符合這樣要求的完全二叉樹我們成爲“最小堆”。反之,如果所有父結點都要比子結點大,這樣的完全二叉樹被稱爲”

原创 動態規劃DP——編輯距離DistanceEditting

1.問題分析  我們經常聽說過DNA親子鑑定。那麼到底是怎麼回事呢?人類的DNA由四個基本字母(A,C,G,T)租場,包含了多達三十億個字符。如果兩個人的DNA序列相差0.1%,任然意味着有300萬個溫志不同,所以我們經常看到DNA親子

原创 數據結構——並查集Union Find Sets

1.問題分析 若某個家族人員過於龐大,要判斷兩個人是否是親戚,確實很不容易。給出某個親戚關係圖,現在任意給出兩個人,判斷其是否具有親戚關係。規定:x和y是親戚,y和z是親戚,那麼x和z也是親戚。如果x和y是親戚,那麼x的親戚都是y的親戚

原创 深度優先搜索DFS——迷宮解救

1.問題分析  有一天同學B到獨自一人到迷宮玩,方向感不好的B同學果不其然在迷宮中迷路,現在同學A要去解救B同學。 迷宮由n行m列的單元格組成,每個單元格要麼是空地,要麼是障礙物。任務就是幫助同學A找到一條從迷宮起點通往同學B的最短路徑

原创 動態規劃DP——0-1揹包問題

1.問題分析  有n個物品每個物品的重量爲我w[i],價值爲v[i],購物車的最大容量是W。選若干個物品放進購物車,使價值最大。 問題歸結爲求解滿足約束條件,使目標函數達到最大值的解向量X{x1,x2,x3,x4,……,xn}。  該