Yogurt factory
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 9431 | Accepted: 4801 |
Description
The cows have purchased a yogurt factory that makes world-famous Yucky Yogurt. Over the next N (1 <= N <= 10,000) weeks, the price of milk and labor will fluctuate weekly such that it will cost the company C_i (1 <= C_i <= 5,000) cents to produce one unit of yogurt in week i. Yucky's factory, being well-designed, can produce arbitrarily many units of yogurt each week.
Yucky Yogurt owns a warehouse that can store unused yogurt at a constant fee of S (1 <= S <= 100) cents per unit of yogurt per week. Fortuitously, yogurt does not spoil. Yucky Yogurt's warehouse is enormous, so it can hold arbitrarily many units of yogurt.
Yucky wants to find a way to make weekly deliveries of Y_i (0 <= Y_i <= 10,000) units of yogurt to its clientele (Y_i is the delivery quantity in week i). Help Yucky minimize its costs over the entire N-week period. Yogurt produced in week i, as well as any yogurt already in storage, can be used to meet Yucky's demand for that week.
Yucky Yogurt owns a warehouse that can store unused yogurt at a constant fee of S (1 <= S <= 100) cents per unit of yogurt per week. Fortuitously, yogurt does not spoil. Yucky Yogurt's warehouse is enormous, so it can hold arbitrarily many units of yogurt.
Yucky wants to find a way to make weekly deliveries of Y_i (0 <= Y_i <= 10,000) units of yogurt to its clientele (Y_i is the delivery quantity in week i). Help Yucky minimize its costs over the entire N-week period. Yogurt produced in week i, as well as any yogurt already in storage, can be used to meet Yucky's demand for that week.
Input
* Line 1: Two space-separated integers, N and S.
* Lines 2..N+1: Line i+1 contains two space-separated integers: C_i and Y_i.
* Lines 2..N+1: Line i+1 contains two space-separated integers: C_i and Y_i.
Output
* Line 1: Line 1 contains a single integer: the minimum total cost to satisfy the yogurt schedule. Note that the total might be too large for a 32-bit integer.
Sample Input
4 5 88 200 89 400 97 300 91 500
Sample Output
126900
Hint
OUTPUT DETAILS:
In week 1, produce 200 units of yogurt and deliver all of it. In week 2, produce 700 units: deliver 400 units while storing 300 units. In week 3, deliver the 300 units that were stored. In week 4, produce and deliver 500 units.
In week 1, produce 200 units of yogurt and deliver all of it. In week 2, produce 700 units: deliver 400 units while storing 300 units. In week 3, deliver the 300 units that were stored. In week 4, produce and deliver 500 units.
题意:酸奶加工厂生产酸奶并准备卖出去,共有N周,每周都要送出规定量的酸奶,且每周生产单位吨奶耗费都不同,记为C_i,每周都有要送走的牛奶量Y_i,若每周生产量过多,囤积会有囤积费,每周单位吨奶的存储费为S。尽量花费最少的费用,求最小费用。
思路:
从每一周的单位酸奶送出量需要耗费的资金方面来考虑,设P为每一周单位酸奶送出量需要耗费资金的最小值,(除第一周外)每一周的P取值为min{这周的C_i,上周的P+S}。
AC代码:
#define _CRT_SECURE_NO_DEPRECATE #include<iostream> #include<algorithm> using namespace std; int main() { int N, s; cin >> N >> s; long long cost=0; int p = 5000;//p每次都代表当前一周每单位吨奶需要消耗的钱,要让其尽量的小 for (int i = 0;i < N;i++) { int c, y; cin >> c >> y; p = min(c,p+s);//p取这周的单位生产价格或者上周的生产价格加上储存费的最小值 cost += p*y; } cout << cost << endl; return 0; }