#include#includeint main()
else}}
printf("%d\n",dp[n][w]);
}}
這道題是一道一維dp的題,可以先把他看成一道二維dp來做,當二維dp的w和v都相同的時候他就是乙個一維dp了
這裡總結一下dp的寫法吧,像這種算是一種吧
if(w[i]>j)
else
當然如果用
if(w[i]>j)
else
這樣在for控制i也可以吧
還有一種就是只用乙個陣列來儲存dp的值,這樣可以節省空間,但是容易出錯
for(int i=0;i=0;j++)
}
因為每次dp需要的資料只有現在使用的資料和上一組資料
上一組資料其實是之前得到的資料
只要然j從w到0,使用自身的資料就可以了
noip2005 一維採藥 恰 (揹包dp)
描述 辰辰是個很有潛能 天資聰穎的孩子,他的夢想是稱為世界上最偉大的醫師。為此,他想拜附近最有威望的醫師為師。醫師為了判斷他的資質,給他出了乙個難題。醫師把他帶到個到處都是草藥的山洞裡對他說 孩子,這個山洞裡有一些不同的草藥,採每一株都需要一些時間,每一株也有它自身的價值。我會給你一段時間,在這段時...
揹包dp 採藥
總時間限制 1000ms 記憶體限制 65536kb 描述辰辰是個很有潛能 天資聰穎的孩子,他的夢想是稱為世界上最偉大的醫師。為此,他想拜附近最有威望的醫師為師。醫師為了判斷他的資質,給他出了乙個難題。醫師把他帶到個到處都是草藥的山洞裡對他說 孩子,這個山洞裡有一些不同的草藥,採每一株都需要一些時間...
dp專題 第三題 採藥
1 簡單描述 01揹包問題 總時間為n,總藥材數為m。各種藥材消耗時間t i 價值v i 求在規定時間內,能採到的草藥最大價值數。2.思路 includeusing namespace std struct herb herb 1001 int main memset dp,0,sizeof dp ...