資料結構 深搜廣搜加強

2022-06-04 10:03:12 字數 1146 閱讀 3788

2·迭代加深搜尋  mle空間不夠

難道是要思考乙個玩遊戲的通法?天哪,,體諒一下我

3·a*演算法

g(n)可以算 h(n) 是乙個估值函式 

八數碼問題的h(n)怎麼估計?

1 是不在位的數字個數

2 是不在位的數字到其該待位置的曼哈頓距離

(用這個剪枝)

第k短路:

已知最短路;h(n)=最短路加k//////////終點到n的最短路

4·巴什博弈

現在如果一共有m+1

'>m+1m+1個物品,我們去取它,先手至少要取乙個,卻又把所有的物品取不完,這樣就導致了後手的必贏

如果物品數小於等於能取的數目,是必勝的,因為只用取一次,

如果是大於能取的數目的,我們可以把總數n

'>nn分解為(m+

1)∗x

+r'>(m+1)∗x+r(m+1)∗x+r

顯然對於(m+

1)∗x

+r'>(m+1)∗x+r(m+1)∗x+r個數,如果我們先手,只需要取走r

'>rr個數,然後留(m+

1)∗x

'>(m+1)∗x(m+1)∗x給對方,(m

+1)∗

x+r'>r

'>(m+

1)∗x

'>這樣一來,每次對方取乙個數y

'>yy我們就只需要取m+1

−y'>m+1−ym+1−y個就可以了,(m

+1)∗

x+r'>r

'>(m+

1)∗x

'>y

'>m+1

−y'>也就是說每乙個m+1

'>m+1m+1的最後乙個都是最開始的先手取的,(m

+1)∗

x+r'>r

'>(m+

1)∗x

'>y

'>m+1

−y'>m+1

'>這樣就能保證如果是可以分解為(m+

1)∗x

+r'>(m+1)∗x+r(m+1)∗x+r的話,先手必勝,如果只能分解為(m+

1)∗x

'>(m+1)∗x(m+1)∗x的話,先手必敗(m

+1)∗

x+r'>

+1)∗

x+r'>如果先手後手都是乙個乙個的取呢?

廣搜和深搜

一般來說,廣搜常用於找單一的最短路線,或者是規模小的路徑搜尋,它的特點是 搜到就是最優解 而深搜用於找多個解或者是 步數 已知 好比3步就必需達到前提 的標題,它的空間效率高,然則找到的不必定是最優解,必需記實並完成全數搜尋,故一般情況下,深搜需要很是高效的剪枝 優化 像搜尋最短路徑這些的很顯著若是...

搜尋(深搜 廣搜)

我記得在遙遠的2017年,我會敲的搜尋也只有暴力列舉了。那個時候的我深搜剛會一丟丟,所以也只配切切水題,然而經常死迴圈re那是肯定的。如今的我因為在多次比賽中都死於搜尋,那就必須得認真磕一下了。其實是這樣的 我眼裡認為的暴力就真的只是暴力,暴力無非就兩種 列舉打表和模擬。然而在這麼多次比賽後,我總能...

深搜和廣搜

深度優先搜尋屬於圖演算法的一種,英文縮寫為dfs即depth first search.其過程簡要來說是對每乙個可能的分支路徑深入到不能再深入為止,而且每個節點只能訪問一次 採用的搜尋方法的特點是盡可能先對縱深方向進行搜尋。基本思路 深度優先遍歷圖的方法是,從圖中某頂點v出發 1 訪問頂點v 2 依...