清北學堂提高組突破營遊記day5

2022-01-12 09:02:42 字數 1209 閱讀 7956

長者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#include

using

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...