一:普通剪枝(可行性剪枝)
搜尋時加入判斷條件,越界沒越界,走沒走過,已經找到符合條件的路了嗎......
二:從起點到終點的最短路徑的題(最優化剪枝)
走到一點,可判斷是不是已經大於當前最短路徑了,是不是此時的路徑長度+到此時到終點最短距離已經大於當前最短路徑了......
三:從起點到終點的路徑長度可否等於乙個給出的距離,如hdu1010
不光要判斷是否已經找到符合條件的路了,還要進行奇偶性剪枝(可行性剪枝)
**中t-step為剩餘的步數或者說時間
dis1+dis2為此點到終點最小剩餘步數
從乙個點到另乙個點的步數可以不一樣,但奇偶性一樣
如果最短走偶數步,說明從這裡到終點一定為偶數步,如果剩餘的的時間是奇數,不可行
如果最短走奇數步,說明從這裡到終點一定為奇數步,如果剩餘的的時間是偶數,不可行
輕易得出:
奇數-偶數 = 奇數,偶數-奇數 = 奇數
奇數-奇數= 偶數,偶數-偶數=偶數
所以t-step-(dis1+dis2)為偶數才有機會滿足規定時間到終點
搜尋(1) 剪枝
要製作乙個體積為n 的m層生日蛋糕,每層都是乙個圓柱體。設從下往上數第i 1 i m 層蛋糕是半徑為ri,高度為hi的圓柱。當i m時,要求ri ri 1且hi hi 1。由於要在蛋糕上抹忌廉,為盡可能節約經費,我們希望蛋糕外表面 最下一層的下底面除外 的面積q最小。令q s 請程式設計對給出的n和...
剪枝搜尋心得
前天在 程式設計之美 中讀到乙個 一摞烙餅排序 的問題,第一眼不會做,看了答案之後倒是讓我明白了一年多之前不真正理解的剪枝搜尋的內涵。記錄一下,作為分享和溫習之地。void cprefixsorting search int pcakesarray,int step if issorted pcak...
搜尋剪枝DFS
tempter of the bone hdu1010 題意 給乙個圖,找出乙個看能否能在t的時間內從s到達d點 思路 bfs肯定不行,因為bfs找到的是最短時間的路徑,無法對在t時間點到達d點進行判斷 於是才想到了dfs,這個能把所有的情況遍歷一遍的演算法,雖然圖的長寬只有7,但是總是超時,這次終...