P1064 金明的預算方案(洛谷)

2021-10-07 05:19:33 字數 914 閱讀 6997

思路:因為每個主件最多只有兩個附件,所以列舉每個主件如果滿足條件的話可以分為五種情況購買:什麼都不買;只買主件;買主件和第乙個附件;買主件和第二個附件;買主件和兩個附件。然後分別計算出每種情況的物品**與重要度乘積之和,最後取最大值即可.

#include

using

namespace std;

int v[

32001][

3], p[61]

[3],f[

32001];

/*** v[i][j]代表第i個物品的第j個附件的**

** p[i][j]代表第i個物品的第j個附件的重要度

** f[i]代表花了i元時,所買物品的**與重要度乘積之和的最大值

*/int

cost2

(int i,

int x,

int y)

intcost3

(int i,

int x,

int y,

int z)

intvp

(int i,

int x)

intmain()

else

if(v[_q][1

]==0)

else

}for

(int i =

1; i <= m; i++

)for

(int j = n; j >=

0; j--

) cout<

;}

洛谷 P1064 金明的預算方案

題目描述 金明今天很開心,家裡購置的新房就要領鑰匙了,新房裡有一間金明自己專用的很寬敞的房間。更讓他高興的是,媽媽昨天對他說 你的房間需要購買哪些物品,怎麼布置,你說了算,只要不超過n元錢就行 今天一早,金明就開始做預算了,他把想買的物品分為兩類 主件與附件,附件是從屬於某個主件的,下表就是一些主件...

洛谷 P1064 金明的預算方案

這是乙個揹包型別的問題,但是存在附件這個問題,因為要拿附件就一定要拿主件,而且附件最多只有2種,假設有2種附件,那麼這個物品就有三種狀態 第一種就是只拿主鍵,dp j max dp j dp j now i v now i v now i p 第二種就是那主鍵和第乙個附件 dp j max dp j...

洛谷 P1064 金明的預算方案

題目描述 金明今天很開心,家裡購置的新房就要領鑰匙了,新房裡有一間金明自己專用的很寬敞的房間。更讓他高興的是,媽媽昨天對他說 你的房間需要購買哪些物品,怎麼布置,你說了算,只要不超過n元錢就行 今天一早,金明就開始做預算了,他把想買的物品分為兩類 主件與附件,附件是從屬於某個主件的,下表就是一些主件...