最近幾天有堅持每天看兩到三道例題,自己讀題的時候還是感覺有些迷茫,不過多看幾遍例題的**大概能理解思路,有的地方不太理解結合資料看也還可以,感覺比之前好多了,對於dp也比之前理解的好一些了。不過做題方面還是沒有多少的進度,每天都有敲**,但還是沒有多a一道題,希望再多看看例題什麼的能讓我自己做題也更容易找到思路吧。
下面總結一下關於dp的一些偽**。
區間dp(先在小區間進行dp得到最優解,然後再利用小區間的最優解合併求大區間的最優解):
for(int i=1;i<=n;i++)
for(int len=2;len<=n;len++) //區間長度
for(int i=1;i<=n;i++) //列舉起點
{int j=i+len-1; //區間終點
if(j>n) break; //越界結束
for(int k=i;kf ← 0
g ← 1
for i ← 1 to n
do for j ← c[i] to v
if (f[j] < f[j-c[i]]+w[i])
then f[j] ← f[j-c[i]]+w[i]
g[j] ← g[j-c[i]]
else if (f[j] = f[j-c[i]]+w[i])
then g[j] ← g[j]+g[j-c[i]]
return f[v] and g[v]
01揹包:
f[0] ← 1
for i ← 1 to n
do for j ← v to c[i]
if (j >= c[i])
then f[j] ← f[j]+f[j-c[i]]
return f[v]
完全揹包:
f[0] ← 1
for i ← 1 to n
do for j ← c[i] to v
if (j >= c[i])
then f[j] ← f[j]+f[j-c[i]]
return f[v]
華為2019 4 10號軟體筆試題
1.分割字串 coding utf 8 import sys for line in sys.stdin 獲取字串的個數和以及字元組成的列表 str list list line.strip n split n int str list 0 str list.pop 0 建立乙個儲存結果的列表 re...
學習後總結,總結後再學習
學習後總結,總結後再學習 2010年畢業以來,讀了幾百本書籍,包括it技術 管理 歷史 營銷 金融 心理等等,在讀某商學院mba一年後感覺有些東西還是要寫寫,除了能增加自己對某些知識和理論的理解外,也許其他人也碰巧想關注一下,了解這方面的東西。我所寫的都是一些簡單的概念層面的解釋,不會做太深入的闡述...
學習總結 近期acm學習的總結
開學已經乙個月了,對acm的學習也乙個月了,做了一下總結 對自己不好的地方的反省 1.開學一開始學的是stl,不得不說stl是乙個很好的東西,熟練的運用stl大大的減少了 量,也使演算法容易實現。但是我在用stl後使自己產生了一種惰性思維。在兩個星期的stl練習後,我發現自己變得越來越懶,不願意自己...