刷题——Yogurt factory POJ

来源:互联网 发布:淘宝网中老年冬装 编辑:程序博客网 时间:2024/06/07 11:29
/*
从第0周到第n周,每周酸奶储存成本为S/1单位
c_i[i]第i周每单位酸奶成本,y_i[i]第i周需要酸奶单位
对于第j周(j>0&&j<n)y_i[j]单位的酸奶花费为min((c_i[i]+(j-i)*S)*y_i[j])(i<=j)
若从i/j周的遍历n^2超时
这时可以先预处理一下每周生产酸奶的最小花费,将c_i[]进行更新
复杂度就降为O(2*n)
*/
#include <stdio.h>
#include <algorithm>
using namespace std;
#define ll long long
int n;
ll s;
ll c_i[10005];
ll y_i[10005];
int main(){
    while(~scanf("%d %I64d",&n,&s)){
        for(int i=0;i<n;i++){
            scanf("%I64d %I64d",&c_i[i],&y_i[i]);
        }
        for(int i=1;i<n;i++){
            if(c_i[i-1]+s<c_i[i]){
                c_i[i]=c_i[i-1]+s;
            }
        }
        ll num=0;
        for(int i=0;i<n;i++){
            num+=c_i[i]*y_i[i];
        }
        printf("%I64d\n",num);
    }
    return 0;
}
原创粉丝点击