動態規劃經典題目整理

2021-09-22 10:28:48 字數 1167 閱讀 9454

複雜度 o(n

w)

o(nw)

o(nw)n

nn為物品種類,w

ww是揹包的重量

目的:使得揹包中的物品價值最大化

單副本揹包問題:(每種物品只有一件)

k (w

,j)=

ma

xk(w,j)=max\

k(w,j)

=max

k (w

,j

)k(w,j)

k(w,j)

代表揹包重量為w

ww,有j

jj件物品時候的最大價值

v

jv_j

vj​為第j

jj種物品的價值

多副本揹包問題:(每種物品有無數件)

k (w

)=ma

xk(w)=max\

k(w)=m

ax

部落格入口

問題描述: 設有s[m

]s[m]

s[m]

,和t [n

]t[n]

t[n]

兩個字串,要找他們最長的公共子串

解:設定乙個變數 儲存最長公共子串的長度

long=0;

c(i,j)=s[i]==s[j]?c(i-1,j-1)+1:0

每次如果c(i,j)>long那麼long=c(i,j)

設兩個子串行的長度分別為m

mm,n

nn那麼時間複雜度就為o(m

n)

o(mn)

o(mn)

例子:給定乙個陣列如:

該陣列的最大和為 i=2, j=4的時候 11-4+13=20

演算法:

int sum=

0, b=0;

for(

int i=

1;i<=n;

++i)

else

if(b>sum)

sum=b;

}return sum;

複雜度:o(n

)o(n)

o(n)

動態規劃 經典題目

made by syx time 2010年7月17日 13 58 47 矩陣連乘 最長公共子串行 最長公共子串行 include char x 8 char y 7 int b 9 8 int c 9 8 void printarray int i1,int j1,int i2,int j2,in...

動態規劃經典題目總結

題意 給定乙個由n行數字組成的數字三角形 試設計乙個演算法,計算出從三角形的頂至底的一條路徑,使該路徑經過的數字總和最大。對於給定的由n行數字組成的數字三角形,計算從三角形的頂至底的路徑經過的數字和的最大值。input 輸入資料的第1行是數字三角形的行數n,1 n 100。接下來n行是數字三角形各行...

今日題目 打家劫舍(經典動態規劃題目)

題目描述如下 這是一道關於動態規劃的簡單題,雖說是簡單題,但是關於動態規劃的,看起來就有點恐懼,但看到這道題是簡單題,頓時就覺得 天晴了,雨停了,我覺得我又行了 然後就開始想關於他地動態遞推公式,我一開始地想法是 由於題目要求小偷不能同時偷相鄰兩個房屋,所以我覺得遞迴公式是dp i dp i 2 n...