算法分析 第二次上机 Yogurt factory

来源:互联网 发布:淘宝开店培训机构北京 编辑:程序博客网 时间:2024/06/06 15:38

总时间限制: 
1000ms 
内存限制: 
65536kB
描述
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.
输入
* 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.
输出
* 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.
样例输入
4 588 20089 40097 30091 500
样例输出
126900
提示
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.
来源
USACO 2005 March Gold


很简单的贪心。


#include <stdio.h>#include <iostream>#include <algorithm>#include <vector>using namespace std;int main(){    int n, s;    scanf("%d%d", &n, &s);    int c = 6000;    long cost = 0;    for(int i = 0; i < n; i++)    {        int ci, yi;        scanf("%d%d", &ci, &yi);        if(ci > c + s)            c += s;        else            c = ci;        cost += c * yi;    }    printf("%ld", cost);    return 0;}







原创粉丝点击