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...