洛谷 P1060 開心的金明 01揹包問題 dp

2021-09-27 12:47:00 字數 2177 閱讀 9328

傳送門

一維揹包優化

dp[j]=max(dp[j],dp[j-v[i]]+w[i]);//判斷是放還是不放。

/**

* from:

* qingdao agricultural university

* created by xiangwangacmer

* date : 2019-09-29-22.19.46

* talk is cheap.show me your code.

*/#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long

using

namespace std;

const ll maxn =

1e5+5;

const ll minn =

1e9+5;

const ll mod =

1000000007

;const

int inf =

0x3f3f3f3f

;const

long

long limit =

4294967295ll

;//vectorv[maxn];

bool row[maxn]

, col[maxn]

;bool flag =0;

queue<

int>q;

int v[maxn]

,w[maxn]

,dp[maxn]

;int

main()

for(

int i=

1;i<=n;i++

)///種類

for(

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

;j--

) cout<

}

二維未優化

f[i][j]=max(f[i-1][j],f[i-1][j-v[i]]+w[i]);//判斷這一態是否要加入放入物品

#include

#include

using

namespace std;

int f[27]

[30002

],v[27]

,w[27];

//f表示最大價值,v表示**,w表示價值

intmax

(int x,

int y)

//自定義x與y最大值max函式

intmain()

for(i=

1;i<=m;i++

)//i從1到m,列舉放不放第i件物品

for(j=

0;j<=n;j++

)//j表示當前揹包總大小

if(j>=v[i]

)//如果當前的揹包可以放第i件物品。

f[i]

[j]=

max(f[i-1]

[j],f[i-1]

[j-v[i]

]+w[i]);

//放第i件物品有沒有好處,是所有揹包問題的核心原始**,

else f[i]

[j]=f[i-1]

[j];

//當前的揹包放不下第i件物品

cout<[n];

//前m件物品(部分)放入乙個容量為n的揹包可以獲得的最優價值

}//上面的**是01揹包未優化的狀態,下面是重要優化**,二維陣列變一維陣列,牢記!

// for(i=1;i<=m;i++) //i從1到m,列舉放不放第i件物品 //下行只能倒敘,要保證

// for(j=n;j>=0;j--) //推f[v]時f[v-w[i]]儲存的是狀態f[i-1][v-w[i]]的值。

// if(j>=v[i]) //如果當前的揹包可以放第i件物品。

// f[j]=max(f[j],f[j-v[i]]+w[i]);// 取最大值

// cout<

洛谷 P1060 開心的金明(01揹包)

金明今天很開心,家裡購置的新房就要領鑰匙了,新房裡有一間他自己專用的很寬敞的房間。更讓他高興的是,媽媽昨天對他說 你的房間需要購買哪些物品,怎麼布置,你說了算,只要不超過 n 元錢就行 今天一早金明就開始做預算,但是他想買的東西太多了,肯定會超過媽媽限定的 n 元。於是,他把每件物品規定了乙個重要度...

洛谷 P1060 開心的金明 01揹包

題目描述 金明今天很開心,家裡購置的新房就要領鑰匙了,新房裡有一間他自己專用的很寬敞的房間。更讓他高興的是,媽媽昨天對他說 你的房間需要購買哪些物品,怎麼布置,你說了算,只要不超過 n nn 元錢就行 今天一早金明就開始做預算,但是他想買的東西太多了,肯定會超過媽媽限定的 n nn 元。於是,他把每...

洛谷 P1060 開心的金明

題目描述 金明今天很開心,家裡購置的新房就要領鑰匙了,新房裡有一間他自己專用的很寬敞的房間。更讓他高興的是,媽媽昨天對他說 你的房間需要購買哪些物品,怎麼布置,你說了算,只要不超過n元錢就行 今天一早金明就開始做預算,但是他想買的東西太多了,肯定會超過媽媽限定的n元。於是,他把每件物品規定了乙個重要...