86 商店購物

2021-10-05 11:08:29 字數 2000 閱讀 5752

86 商店購物

問題描述 :

在商店中,每一種商品都有乙個**(用整數表示)。例如,一朵花的**是 2 zorkmids (z),而乙個花瓶的**是 5z 。為了吸引更多的顧客,商店舉行了**活動。

**活動把乙個或多個商品組合起來降價銷售,例如: 三朵花的**是 5z 而不是 6z, 兩個花瓶和一朵花的**是 10z 而不是 12z。

編寫乙個程式,計算顧客購買一定商品的花費,盡量利用優惠使花費最少。

儘管有時候新增其他商品可以獲得更少的花費,但是你不能這麼做。

對於上面的商品資訊,購買三朵花和兩個花瓶的最少花費是:以***購買兩個花瓶和一朵花(10z),以原價購買兩朵花(4z)

輸入說明 :

輸入包括一些商店提供的優惠資訊,接著是購物清單。

第一行 優惠商品的種類數(0 <= s <= 99)。

第二行…第s+1 行 每一行都用幾個整數來表示一種優惠方式。

第乙個整數 n (1 <= n <= 5),表示這種優惠方式由 n 種商品組成。後面 n 對整數 c 和 k 表示 k (1 <= k <= 5)個編號為 c (1 <= c <= 999)的商品共同構成這種優惠,最後的整數 p 表示這種優惠的***(1 <= p <= 9999)。***總是比原價低。
第 s+2 行 這一行有乙個整數 b (0 <= b <= 5),表示需要購買 b 種不同的商品。

第 s+3 行…第 s+b+2 行 這 b 行中的每一行包括三個整數:c ,k ,和 p 。c 表示唯一的商品編號(1 <= c <= 999),k 表示需要購買的 c 商品的數量(1 <= k <= 5)。p 表示 c 商品的原價(1<= p <= 999)。

最多購買 5*5=25 個商品。

輸出說明 :

只有一行,輸出乙個整數:購買這些物品的最低**。

輸入範例 :

42 81 1 62 1 149

2 62 1 113 1 147

2 113 1 34 1 77

2 81 1 34 1 75

481 1 27

62 2 135

113 3 27

34 4 56

輸出範例 :

#include

#define inf 0x3f3f3f3f

#define min(a,b) a>b?b:a

struct nodea[

1000];

int vis[10]

,size[10]

,dp[10]

[10][

10][10

][10]

;int

main()

a[i]

.n[vis[x]

]= y;

} p;

scanf

("%d"

,&p)

; a[i]

.p = p;

}scanf

("%d"

,&t)

;for

(i =

1;i <= t;i++

) n++

; a[n]

.n[vis[x]]=

1;a[n]

.p = z;

size[i]

= y;

}for

(int i1 =

0;i1 <=

5;i1++)}

}}} dp[0]

[0][

0][0

][0]

=0;for

(int x =

1;x <= n;x++)}

}}}}

printf

("%d\n"

,dp[size[1]

][size[2]

][size[3]

][size[4]

][size[5]

]);return0;

}

Shopping商店購物

問題 m 動態規劃 商店購物 時間限制 1 sec 記憶體限制 64 mb 題目描述 魔法商店中每種商品都有乙個 例如,一朵花的 是2 元,乙個花瓶的 是5 元。為了吸引更多的顧客,商店提供了特殊 特殊優惠商品是把一種或幾種商品分成一組。並降價銷售。例如 3朵花的 不是6元而是5 元 2個花瓶加1朵...

python練習小專案 小商店購物結算

編號 購買個數 名稱 dict1 money int input 請輸入您的充值金額 set1 set while true print dict1 x input 請輸入您購買的商品編號 或者輸入0結束購物 if x in 0 1 2 3 4 5 and x.isdigit 購買的商品編號 if ...

商店選址問題

description 給出乙個城市的地圖 用鄰接矩陣表示 商店設在一點,使各個地方到商店距離之和最短。input 第一行為n 共有幾個城市 n小於201 第二行至第n 1行為城市地圖 用鄰接矩陣表示 output 最短路徑之和 sample input 3 0 3 1 3 0 2 1 2 0 sa...