题目描述
小爱经营了一家牧场生产牛奶,接下来 n 天时间里,每天都有订单,其中第 i 天,必须发出 ai 箱牛奶。生产牛奶的成本来自于两方面:
一是材料费。原料价格每天都会变化,如果选择在第i天生产牛奶,需要为每箱牛奶支付 ci 元的材料费。二是存储费。如果原材料成本上涨,可以提前把牛奶做好,放在冷库里保存,但需要支付仓储费,一箱牛奶存放一天的成本是 s 元。
每天的产能都没有上限,也就是说可以在任一天生产出任意多数量的牛奶,冷库的容量也没有上限,且假设牛奶可以存放任意长的时间。问,为了满足这些订单的要求,小爱应该如何规划每天的产量,又如何存储,才能把总成本控制到最小?
输入格式
第一行:两个整数 n 和 s。
第二行到第 n+1 行:第 i+1 行有两个整数 ci 和 ai。
输出格式
单个整数:表示为了满足所有订单的最小总成本。
贪心策略:第一天,只能选择制作方式,
后面的每一天,在<今天制作>与<前期存储>之间取更优解
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,s;
cin>>n>>s;
long long min,c,a;
cin>>min>>a;
long long sum=0;
sum+=min*a;
for(int i=1;i<n;i++){
min+=s;
cin>>c>>a;
if(min>c)min=c;
sum+=min*a;
}cout<<sum;
}