福州培訓日誌之回溯 深度優先搜尋(2月5日)

2021-08-15 10:00:07 字數 1523 閱讀 2107

2月5日,在福州正式培訓。

早上講專題,下午測試,排進前十(0分的實在太多了,並列的也就多了),完美爆0!

初次體會出差的感受,今天是有史以來第一天。

這十多個小時已經明白的告訴我們接下來的日子將要多麼努力,這幾天是多麼重要。

劉老師說:「現在的辛苦換來高中的輕鬆。」

所以我會期待,我會準備,我會執行。

咳咳,切入正題:

先來說說列舉吧:

列舉:1.保證最優解和或全部的可行解都被列舉到

2.列舉量不能過大

3.沒有三

了,可能是我的手速跟不上老師的速度,emmm,剩下只能自己參考黑皮書了

來例題!

no.1 01矩形

大意:有0和1組成的矩形,從中找到內部都為1的最大矩形,嗯哼,就這樣。

1.列舉矩形左上角和有下角,再進行掃瞄                時間複雜度0(n的4次方)因為不會打平方所以就用文字了,請見諒

2.列舉矩形上下兩邊,掃瞄內部每列(假設是c[i])是否為1    時間複雜度0(n的三次方) 也就是0(n的二次方)*0(n)

優化了耶!

no.2 魔法陣

emmm莫名的不想說題目

就是有很多(n)個禮物呀,不過不是給我的嘛,這些禮物都有自己的魔法值,要在這些禮物中找到禮物a,b,c,d魔法值為xa,xb,xc,xd滿足

1.xa2.2(xd-xc)=xb-xa

問有多少組?

配個圖:

由題可知i=n/9

設t[xa]為2i的選擇個數

r[k]為在xc>=k後i的選擇個數(1.xc>=k 2.xd-xc=i)

t[xa]*r[xb+6i+1]:確定xb,xa有t[xa]種選擇(1.xd-xc=i  2.xc>=xb+6i+1)xc,xd 有r[xb+6i+1]對

**,我就不打了,來的打,問題是我熬夜,好睏啊!!!

遞迴回溯:

1.判斷當前是否為所要的狀態,根據所需進行處理或回退

2.在當前狀態上列舉所有合法方向,取某乙個嘗試方向,沒有則退出

3.等等

例題:有且只有一題

二十四點;

上圖:

前序:/+5 6 - 3 2

後序:5 6 + 3 2 - /

接下來的基本沒太懂,so,就不寫了,很晚了,晚安!

回溯法遵循深度優先嗎 深度優先搜尋(回溯法)

事實上,深度優先搜尋屬於圖演算法的一種,英文縮寫為dfs即depth first search.其過程簡要來說是對每乙個可能的分支路徑深入到不能再深入為止,而且每個節點只能訪問一次.舉例說明之 下圖是乙個無向圖,如果我們從a點發起深度優先搜尋 以下的訪問次序並不是唯一的,第二個點既可以是b也可以是c...

深度優先遍歷 回溯 79 單詞搜尋

題目描述 給定乙個二維網格和乙個單詞,找出該單詞是否存在於網格中。單詞必須按照字母順序,通過相鄰的單元格內的字母構成,其中 相鄰 單元格是那些水平相鄰或垂直相鄰的單元格。同乙個單元格內的字母不允許被重複使用。示例 board a b c e s f c s a d e e 給定 word abcce...

深度優先搜尋之深度體驗

迷宮有n行m列的單元格組成 n和m都小於等於50 每個單元格內要麼是空地,要麼是障礙物。找到一條從迷宮的起點通往迷宮內任意一點的最短路徑。注意 障礙物是不能走的,也不能走到迷宮之外。include include int n,m,p,q,len,min 99999999 int a 51 51 bo...