廣搜:廣度優先搜尋是逐層遍歷搜尋樹的演算法,所有狀態按照入隊的先後順序具有層次單調性。如果每一次擴充套件恰好對應一步,那麼當乙個狀態第一次被訪問(入隊)時,就得到了從起始狀態到達該狀態的最小步數。在廣搜中,我們還要注意剪枝,對之前到達過的點進行標記,由於之前到達過的點的步數一定比現在到達用的步數少,故後到達的點不放入佇列。當數值過大,不能用數值儲存步數時,我們也可用map>儲存。
剪枝:剪枝就是減小搜尋樹規模,盡早排除搜尋樹中不必要的分支的一種手段。在搜尋中有以下幾類常見的剪枝方法。
1,優化搜尋順序:在一些搜尋問題中,搜尋樹的各個層次,各個分支之間的順序是不固定的,,有時候搜尋順序不同,其規模大小也相差很大的。
2,排除等效分支,若到達這個分支是等效的,只需要對其中一條搜尋。
3,可行性剪枝,若谷分支已經無法到達遞迴邊界,就直接進行回溯。
4,記憶化,就是對已經走過的點標記了。
在做搜尋題目中,這些剪枝方法很重要,具體還是要看題,根據題目採取不同的剪枝。
ACM訓練日誌
今天的比賽我們隊倆大佬出了倆題,後來過了時間又補了f題,總的來說我覺得今天訓練不簡單,被d題整的心態有點炸,後來于衡a掉了,貪心字首和,仔細看了隊友的 還是很有啟發的,附上原題和隊友的 原題 ac include using namespace std const int maxn 4e5 10 t...
訓練日誌 2018 10 11
昨天晚上打比賽,感覺手好生,題意看了半天,才看懂,然後就是tle,這回還好一點,馬上想到了,修改的演算法,但是細節沒處理好,wa了,找了好一會才發現 的錯誤,第二題就更艱辛了,一開始就跑偏了方向,以為是乙個找規律的事關鍵是以為自己找到了規律,開始麻煩的敲 敲完了才發現,有好多錯誤情況不在規律內,無奈...
4 27訓練日誌
關於三分法的一些知識總結 三分法主要用於求解乙個函式在某個區間內的極大 極小 值點首先對於乙個凹函式y f x 我們要求它的極小值點。首先確定它的極小值點所在的區間為 l,r 計算出兩個三分點 mid l r 2 mid2 mid r 2 其實這兩個點的位置是靈活的 此時 l mid f mid2 ...