Luogu1060 開心的金明

2021-10-24 09:33:12 字數 2459 閱讀 2726

題目描述

金明今天很開心,家裡購置的新房就要領鑰匙了,新房裡有一間他自己專用的很寬敞的房間。更讓他高興的是,媽媽昨天對他說:「你的房間需要購買哪些物品,怎麼布置,你說了算,只要不超過n

nn元錢就行」。今天一早金明就開始做預算,但是他想買的東西太多了,肯定會超過媽媽限定的n

nn元。於是,他把每件物品規定了乙個重要度,分為5

55等:用整數1−5

1-51−

5表示,第5

55等最重要。他還從網際網路上查到了每件物品的**(都是整數元)。他希望在不超過n

nn元(可以等於n

nn元)的前提下,使每件物品的**與重要度的乘積的總和最大。

設第j

jj件物品的**為v[j

]v[j]

v[j]

,重要度為w[j

]w[j]

w[j]

,共選中了k

kk件物品,編號依次為j1,

j2,…

,j

kj_1,j_2,…,j_k

j1​,j2

​,…,

jk​,則所求的總和為:v[j

1]×w

[j1]

+v[j

2]×w

[j2]

+…+v

[jk]

×w[j

k]

v[j_1] \times w[j_1]+v[j_2] \times w[j_2]+ …+v[j_k] \times w[j_k]

v[j1​]

×w[j

1​]+

v[j2

​]×w

[j2​

]+…+

v[jk

​]×w

[jk​

]。請你幫助金明設計乙個滿足要求的購物單。

輸入格式

第一行,為2

22個正整數,用乙個空格隔開:n,m

n,mn,

m(其中n

(<

30000

)n(<30000)

n(<30

000)

表示總錢數,m

(<25)

m(<25)

m(<25

)為希望購買物品的個數。

從第2

22行到第m+1

m+1m+

1行,第j

jj行給出了編號為j−1

j-1j−

1的物品的基本資料,每行有2

22個非負整數v,p

v,pv,

p(其中v

vv表示該物品的**(v≤

10000

)(v \le 10000)

(v≤100

00),p

pp表示該物品的重要度(1−5

1-51−

5)輸出格式

1

11個正整數,為不超過總錢數的物品的**與重要度乘積的總和的最大值(

<

100000000

)(<100000000)

(<10

0000

000)

。輸入輸出樣例

輸入 #1

1000 5

800 2

400 5

300 5

400 3

200 2

輸出 #1

說明/提示

noip 2006 普及組 第二題

題解從頭開始含淚複習dpdp

dp……乙個樸素的揹包問題,用dp[

i]

dp[i]

dp[i

]表示花費i

ii元可以買到的最大價值,然後列舉每個物品j

jj,轉移方程為dp[

i+v[

j]]=

max(

dp[i

+v[j

]],d

p[i]

+v[j

]×w[

j]

)dp[i+v[j]]=max(dp[i+v[j]],dp[i]+v[j]\times w[j])

dp[i+v

[j]]

=max

(dp[

i+v[

j]],

dp[i

]+v[

j]×w

[j])

更新每個花費的最優解。

記得列舉花費時要從大到小列舉,否則乙個物品會被購買多次。

**

#include

using

namespace std;

const

int n=

3e4+5;

int dp[n]

,v[30

],w[30]

;int n,m,ans;

voidin(

)voidac(

)int

main()

luogu1060開心的金明

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

luogu1060 開心的金明 01採藥

知道時間 t 有n 株備選藥品,知道每件物品需要 v,價值 w 求 t 時間內,能採摘的最大價值的藥 用 i 表示當前可以放進箱子的物品總數量 1 5 這是乙個 5選x 的組合問題。題目要求知道最優狀態,所以可以忽略過程 降維分析,因為只考慮物體的體積,不考慮形狀等亂七八糟的東西,用打表 用遞推的思...

開心的金明 洛谷 1060

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