1·
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 依...