POJ 2393-Yogurt factory [贪心] 《挑战程序设计竞赛》2.2

题目链接: POJ 2393-Yogurt factory

题目大意:

酸奶厂造酸奶,每天的原料,工资成本都不同,占单位酸奶的百分之 ci , 每天的需求量也不同,为 yi 。这个酸奶厂很厉害, 只要你想, 它一天可以造出无限的酸奶。酸奶厂还有个巨大无比容量无限的仓库, 可以用来存放没用完的酸奶。每天的存储费用都是一个常数, 单位酸奶的百分之 S 。现在给定了 N 天的成本和需求,求每天都能满足需求量的最小的成本和。

输入格式:

第1行,两个数组, N S
接下来2~ N+1 行,每行2个数字, ciyi

输出格式:

一个数字, 表示最小的成本和。

题解:

每天都要满足需求, 所以每天制造酸奶时,成本要么是今天的 ci , 要么是之前的最低成本加上S。可以理解为之前就做好了,放到仓库存着今天拿来用。如果几天前做好,再加上存几个晚上的费用也比今天造酸奶要便宜,那当然是提前做好比较节约成本了。

代码:

 #include 

using namespace std;
int N, S, c, y;
long long sum = 0;

int main() {
    cin >> N >> S;
    int m = 0x3f3f3f3f; //当前的最小单位成本
    for (int i = 0; i < N; i++) {
        cin >> c >> y;
        m = min(m+S, c);
        sum += m * y;
    }
    cout << sum << endl;
    return 0;
}

你可能感兴趣的:(POJ,挑战程序设计竞赛,poj,贪心)