本週總結(8 17 8 23)(動態規劃)

2021-10-10 00:10:19 字數 2688 閱讀 3785

線性dp

區間dp

計數類dp

數字統計dp

狀態壓縮dp

樹形dp

其他總結

本週拓展題

本週主要複習揹包問題,線性dp,區間dp,計數類dp,數字統計dp,狀態壓縮dp,樹形dp,記憶化搜尋等內容。

二維

for

(int i =

1; i <= n; i ++

)for

(int j =

0; j <= m; j ++

)

一維

for

(int i =

1; i <= n; i ++

)for

(int j = m; j >= v[i]

; j --

)//逆序

f[j]

=max

(f[j]

, f[j - v[i]

]+ w[i]

);

for

(int i =

1; i <= n; i ++

)for

(int j = v[i]

; j <= m; j ++

)//正序

f[j]

=max

(f[j]

, f[j - v[i]

]+ w[i]

);

二進位制優化,優化後變為01揹包問題

for

(int k =

1; k <= s; k *=2

)//s是限制數量);

}if(s >

0) t.

push_back()

;

f[1]

=1;//f[i]表示以第i位結尾的最長長度

for(

int i =

2; i <= n; i ++

)int res =0;

for(

int i =

1; i <= n; i ++

) res =

max(res, f[i]

);

//f[i][j]表示所有從a[1 ~ i],b[1 ~ j]且以b[j]結尾的公共子串行的最大長度

for(

int i =

1; i <= n; i ++

) f[i]

[j]=

max(f[i]

[j], maxv);}

}}int res =0;

for(

int i =

1; i <= m; i ++

) res =

max(res, f[n]

[i])

;

一般外層迴圈從小到大列舉區間長度,內層迴圈列舉左端點的位置。

f[i][j]表示區間(i, j)上的某種性質。

主要思路:分類討論。

依次列舉每個數字可能出現的情況。

一般問題是求區間(a, b)內滿足某條件的數的個數,可轉換為f(b) - f(a - 1),其中f(n)表示從0 ~ n區間內滿足條件的個數。(類似字首和的思想)

一般n的範圍較小,可以用二進位制數枚舉出所有可能出現的情況。

向下搜尋(類似題目:大臣的旅費)

//d1、d2陣列分別是向下的最遠距離和次遠距離,p陣列記錄最遠距離的路徑

void

dfs_d

(int u,

int fa)

//通過子節點更新父節點

else

if(d > d2[u]

) d2[u]

= d;}}

}

向上搜尋(類似題目:樹的中心)

//up陣列是向上的最遠距離(反方向),p陣列記錄最遠距離的路徑

void

dfs_u

(int u,

int fa)

//通過父節點更新子節點

}}

快速冪函式的返回型別和引數型別最好統一,否則在計算過程中要進行型別轉換。

其他問題轉換為揹包問題時,有幾個限制就要用幾維的陣列,再對空間進行優化。

迭代器遍歷vector:for (auto i = v.begin(); i != v.end(); i ++ ) // 若為int型vector,迭代器型別為vector::iterator使用迭代器刪除元素:v.erase(i); // i為迭代器使用迭代器訪問元素:auto t = (*i); // i為迭代器

以下題目均**於acwing**

揹包1:1022. 寵物小精靈之收服

揹包2:7. 混合揹包問題

線性dp:272. 最長公共上公升子串行

區間dp:479. 加分二叉樹

計數類dp:306. 傑拉爾德和巨型象棋

數字統計dp:1081. 度的數量

狀態壓縮dp:1064. 小國王

樹形dp:1073. 樹的中心

記憶化搜尋:898. 數字三角形

本週總結and下週規劃

專案互動,還沒有完成,還有一天時間,我要盡快在這週內完成我需要完成的部分,然後給我們這個專案再好好完善完善 四級 作文,現在準備,真題刷了有兩套,慘不忍睹。1 聽力 第一套迷迷瞪瞪彷彿在聽火星語言,完全沒有思路,不理解,只能聽到哪個,選項裡正好有就選誰,第二套好點了感覺有點做題思路了 2 閱讀理解 ...

本週總結and下週規劃

細看專案,感覺還需要加很多東西,為了整個專案的完整性,使用者更好的體驗感,我們還得繼續幹!vue它已經拖太久了,我準備轉戰期末複習 我大概總結了乙個文件,怎麼說呢今天 週日 早上,感覺不太方便去看,所以,還需要完善完善,用於下午考核 期末複習太艱難了,不行不行,得擠出時間,不要再去做那些沒必要做得事...

動態規劃總結

華電北風吹 天津大學認知計算與應用重點實驗室 日期 2015 12 7 近期學了幾個動態規劃正好總結一下。裡面不涉及具體問題的具體解法,有問題可以參看我的具體型別的講解部落格。目前所見動態規劃可以劃分為兩類 鏈式和樹形。而且這兩類中的每個節點都是乙個完整的狀態集合。一 鏈式動態規劃 鏈式動態規劃的題...