複雜度 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...