長者zhx來啦。。
(又要送冰紅茶了。。。)
zhx一上來就講動態規劃。。。是不是要逼死人。。。。
動態規劃:
最簡單的例子:斐波那契數列。因為他是遞推(通項公式不算)的,所以前面的已經確定的項不會影響後面的,滿足無後效性,為最簡單的動態規劃。
3種寫法:用算好的自己來算別人,或者用別人更新自己,記憶化搜尋。
計算斐波那契數列f[n]=f[n-1]+f[n-2]。
如果用dfs來計算的話,在dfs函式裡return dfs(n-1)+dfs(n-2);
由於沒有記憶化,(沒有把每乙個階段記錄下來,)複雜度達到了f[n]級別而線性地推可以o(n)。
這就是為什麼記憶化。
(zhx:我課件只有130頁,沒什麼東西。。)
動態規劃過程圖
畫成圖就是dag有向無環圖。
揹包問題:洛谷p1048採藥。
**:
#include#includeusing
namespace
std;
const
int maxn = 3404
;const
int maxm = 12882
;int
main()
cout
return
0;}
然後是無限揹包,有限揹包。
然後是區間dp,
例題為合併石子。
滿足只能合併相鄰的兩個元素的題為區間dp。
**:狀壓dp:洛谷p1171
如果乙個題資料n<=20||22,考慮狀壓dp。
洛谷p1879玉公尺田,狀壓dp;
p1896 [scoi2005]互不侵犯,狀壓dp;
然後是數字dp:
p2657 [scoi2009]windy數
樹形dp:
題目:對於一棵有n個點的樹,求它有多少個點。
(題目無鍋)。
要求用樹形dp做。
原理:處理子樹。我們設f[i]表示i節點以及他的子樹一共有多少個節點。那麼轉移方程為f[i]=σf[j](子樹)+1(自己);
最後輸出f[1];
博弈論dp: 明天再講。
清北學堂提高組突破營遊記day3
講課人更換成dms。真的今天快把我們逼瘋了。今天主攻資料結構,基本上看完我部落格能理解個大概把,1.lca 安利之前個人部落格鏈結。之前自己學過qwq。2.st表。同上。3.字串雜湊。同上。貌似我好像都學過的樣子。不過dms講的是真的好,聲情並茂 4,並查集。同上。5,樹狀陣列,同上。6,線段樹,同...
清北學堂提高組突破營遊記day4
今天主攻圖論。對於這道題,30分做法是暴力搜尋全部來判斷是否有異樣。對於滿分做法,利用帶權並查集。又帶我們串了一邊lca 安利個人lca部落格。spfa 原理 迴圈佇列。然後是floyd 個人部落格 原理 我們把所有邊權拿出來拍個序,每次把邊權最小的兩個點放到同乙個連通塊中,運用並查集的思想,知道連...
清北學堂遊記 解題報告
本blog是本蒻參加2018.10.1 10.7日的清北學堂北京一期刷題衝刺班的感想 學習筆記。以下是考試記錄 已update 已update 已update 不好意思這個我是真的不會。這個搜尋題真的是神了。qwq 哪位大佬有什麼好的做法請私信我qwq 已update 已update 已update...