樹形問題和更多樹

2021-08-02 10:31:56 字數 1985 閱讀 3834

----------------siwuxie095

樹形問題

在處理計算機中遇到的很多問題時,雖然沒有建立出具體的樹,但是

整個是以一棵樹的形狀進行求解的,通常稱這類問題為

樹形問題

遞迴法- 天然的樹形性質

由於樹這種結構,它的定義具有天然的遞迴性質,因此,當求解計算

機問題時,如果使用的是遞迴的方法,那麼這些問題也就天然的具有

樹形問題的性質

最典型的,比如:歸併排序

和快速排序

整個過程可以看做是對一棵排序樹的遍歷,用這種觀點再去看歸併排序

和快速排序的**,就會發現,它們像極了是對一棵樹進行後續遍歷

或前序遍歷

這樣的**模式

使用遞迴的方式來求解問題,在計算機領域一類最常見的求解問題,

就是搜尋問題

事實上,絕大多數計算機問題都可以使用搜尋的方式來解決

(1)一條龍遊戲

在與電腦博弈的過程中,每一次在 9 個格仔裡走哪個點,就可以列舉,

每一次列舉產生出乙個新棋局,那麼對於這個新棋局,實際上就相當於

是從上乙個棋局開始,派生下來的子節點 … 依此類推,直至整個遊戲完結

即通過搜尋的乙個稱之為

決策樹的樹,來遍歷所有的決策,以選出最

優的決策

(2)8 數碼

對於這個遊戲,可以用搜尋樹來進行解決。通過初始的棋局,

一共可能有 4 種走法,派生出初始棋局的 4 個子節點,對於

每乙個子節點,相應的又有若干種走法 … 依此類推

(3)八皇后

八皇后問題是乙個以西洋棋為背景的問題:如何能夠在

8×8的西洋棋

棋盤上放置八個皇后,使得任何乙個皇后都無法直接吃掉其他的皇后?為了

達到此目的,任兩個皇后都不能處於同一條橫行、縱行或斜線上

採用樹形搜尋的方式,可以很容易地生成八皇后的所有的解

當然,搜尋問題,也並不像想象的那麼容易。實際上,之前提過的所有問題,

在搜尋的同時,對應的都還可以優化

不然的話,相應的狀態數量太多,更重要的是,有可能對重複的狀態進行了 訪問

(4)數獨

數獨,這類更難的問題也可以使用樹的方式解決

(5)搬運工

甚至像搬運工這樣的小遊戲:怎麼把磚塊搬運到指定的地點,

都可以使用樹的方式來解決

而類似於自動求解搬運工,也是乙個典型的人工智慧的任務

在早期,搜尋過程近乎就是人工智慧的核心

如:為 ibm 贏得西洋棋冠軍的深藍,它的核心其實就是搜尋

當然這個搜尋不是簡單的僅僅做搜尋,這裡面涉及到很多的優化,

很多的技巧,包括對要搜尋的問題本身的深入分析

而像alphago 這樣的人工智慧和搜尋還是略有不同的,alphago

使用的是機器學習相關的技術

更多樹

在電腦科學領域隨著求解問題的不同,針對不同的問題種類,

計算機科學家還發明了更多的樹,最典型的,如下:

kd 樹、區間樹、哈夫曼樹…

樹這個話題在電腦科學中,佔據著舉足輕重的地位

【made by siwuxie095】

問題 A 更多閏年數

時間限制 1 sec 記憶體限制 128 mb 提交 578 解決 147 狀態 提交 命題人 admin 輸入兩個正整數a和b,表示開始的年份和結束的年份,問從a年到b年有多少閏年?閏年只需要滿足如下兩個條件之一 1 能整除400。2 能整除4,但不能整除100。第一行2個整數a和b,範圍在 1,...

樹形索引(B 樹)

一棵m階的 b 樹和m階的 b 樹的異同點在於 1.有n棵子樹的結點中含有n 個關鍵字 即每個關鍵碼對應一顆子樹 2.所有的終端結點中包含了全部關鍵字的資訊 及指向含有這些關鍵字記錄的指標,且終端結點本身依關鍵字的大小自小而大的順序鏈結。而b 樹 的葉子節點並沒有包括全部需要查詢的資訊 3.所有的 ...

黑白樹 樹形 貪心

題目描述 一棵n個點的有根樹,1號點為根,相鄰的兩個節點之間的距離為1。樹上每個節點i對應乙個值k i 每個點都有乙個顏色,初始的時候所有點都是白色的。你需要通過一系列操作使得最終每個點變成黑色。每次操作需要選擇乙個節點i,i必須是白色的,然後i到根的鏈上 包括節點i與根 所有與節點i距離小於k i...